Ой, прошу прощения - не совсем так: приложение таким образом постоянно выдает в UI, т.е. не в потоке. Это хорошо видно, т.к. UI "замерзает". Если выполнять без .observeOn(AndroidSchedulers.mainThread()), то приложение упадет, т.к. setText будет выполняться в потоке.