Эта особенность описана в документации: Distributive conditional types. В отличие от "обычных" условных типов (первый случай) условный тип от типа-параметра (соответственно, в...
Не слишком ли жестко..?
А откуда здесь должен выводится тип возвращаемого значения fn (O)? На скринах не видно типизации TransactionObservable, но если тип-параметр O передавать явно, в результат fn ...