just working through this on the import side of the equation –
interestingly, we do a value check in the parser (CRM/Import/Parser/Contact.php) around line 1208, where we compare the data in the import file with both the value and label of the custom field (I'm looking at radio button types specifically). and if the incoming data matches either, we allow the parser to continue.
the problem is that we simply take whatever data we're given and import that – even if it's the label, not the value. consequently the data in the table is the label, not the value, and so it isn't stored or displayed correctly. I'm looking into where that's handled now.
ideally we should export both since both have their needs in various scenarios