Ключевое (и единственное) отличие для меня - это когда вы смотрите на фактическую разницу Action0 и Callable, с которыми работают эти два:
public interface Action0 extends Action {
void call();
}
vs
public interface Callable<V> {
/**
* Computes a result, or throws an exception if unable to do so.
*
* @return computed result
* @throws Exception if unable to compute a result
*/
V call() throws Exception;
}
В основном, если ваш logi c ничего не возвращает (что именно так в случае Callable), вам лучше go с Completable.fromAction
для более чистого кода.