Perhaps my opinion is wrong - but if I replace my OTP generating device (such as my phone) I don't want to use recovery codes I just want to restore FreeOTP and be on my way. Recovery codes to me is "oh shit I need to get to my account right now because of some important reason X and I don't have my phone with me". To give you some background of why - I have about 20 OTP keys in FreeOTP right now - being able to have root access and restore FreeOTP from Titanium Backup is very important to me.
This was particularly annoying when a service does not provide recovery codes. Or even worse (Symantec VIP OTP) they generate a random key generated based on the device - so even if you reinstall it you can't get the same key back (according to reviews in the play store - updates have even triggered a regen of keys) - locking people out of their accounts because many services who use Symantec VIP access don't offer recovery codes.
This all goes back to the idea of exporting keys from apps like FreeOTP and Google auth. People have asked numerous times but no one wants to implement it in those applications (there is a 3rd party OTP app that claims to store the keys encrypted in dropbox...but last time I used it the automatic backup stopped working....).
To make a long story short - if you present the QR Code I can get the key by using it a barcode scanner - but just tell me what it is so I can throw it in my password manager in the event I need to get into my account without my phone or have to replace my phone.
We can talk offline if you are interested and I can explain how I do 2FA for SVN and Mercurial.