Да, это правильно. Ваш внешний актер просто создаст актера и приостановит (дождитесь его следующего сообщения). Однако будьте очень осторожны с такими вещами. Внутренний субъект автоматически запускается в планировщике и обрабатывается потоком. Этот поток будет блокировать в этом Future (для меня это выглядит как java.util.concurrent.Future). Если вы делаете это достаточно много раз, вы можете столкнуться с проблемами голодания, когда все доступные потоки блокируются на Futures. Актер - это в основном рабочая очередь, поэтому вам следует использовать эту семантику.
Вот версия вашего кода с использованием библиотеки актеров Scalaz . Эта библиотека намного проще и понятнее, чем стандартные актеры Scala (источник буквально на полторы страницы). Это также приводит к гораздо более краткому коду:
actor {(e: SomeEvent) => promise { ... } to publisher }
Эта версия полностью не блокирует.