Вы не поняли - subject это observable в который Вы сами можете что-то послать. Не в имплементации Observable а как в объект. Это крайне полезная штука когда надо, к примеру разослать всем какой-то ивент и чтобы все подписчики его получили. К примеру, настройки. Вы хотите поменять сортировку файлов в приложении, но на настройку сортировки уже подписаны несколько клиентов, как им сказать что настройка поменялась? Вот тут subject и помогает. Есть объект сабджект и два метода getSort и setSort.
val sub = BehaviorSubject()
fun getSort(): Flowable = sub
fun setSort(...) {
sub.onNext(...)
}