They can be implemented more efficiently than relying on concatMap or flatMap, similarly to how Flowable implements them.
In addition, the bufferSize overloads make no sense as the operation is completely synchronous and nothing is to be buffered. (In comparison, Flowable.concatMapIterable has to buffer the upstream items because the downstream may not be ready to consume the iterable.)