Даже не знаю, это во многих докладах было. И вообще это очень логично. Вызываемый код сам лучше знает что на каких потоках делать. В корутинах в вызываемой функции может быть withContext, тогда переключение из вызывающего кода не имеет эффекта.
Ну в целом да, логично. Старался так и делать всегда, то есть там где subscribe там и subscribeon/observeon в rx. Да и в корутинах тоже, обычно suspend fun, а где вызываешь там уже диспетчеры.