У меня изучение РХ следующим по списку, но есть небольшой опыт с promises (CompletableFuture). Если ошибка ожидается только одна, то зачем нарушать соглашение? Мне вообще кажется странным, что все не остановилось после первого exception. Например, CompletableFuture.completeExceptionally(exc) блокирует нормальное значение, если оно придет позже. Я ожидал бы подобного поведения и тут.
А можно повторить эксперимент с pimsleur?