I think it is possible in Centralized Exchanges, where they add a 2FA in their own networks that give access to funds which are stored on their servers. But, it is hard to attach a 2FA on a decentralized network because it is does not store your account key in general, it just accesses them from your device. There are several decentralized nodes that simply validate a hash and store that data forever on each node.
But, there is a a way you can recover keys, here is that article by @arcange https://hive.blog/hive/@arcange/introducing-hive-account-recovery
The reason why this is not implemented has nothing to do with decentralization
Yes it does, but the public key only.
No it doesn't. The network can't access a key stored on a device. The user signs transactions using keys stored on their device and then sends the signed transaction to the network.
hive.recovery is not a tool to recover keys but to recover your account (i.e. to assign new keys to your account with the help of your recovery account)