The contracts allow actions like transfers and delegations to accounts that the main chain doesn't know about. For the most part, there's nothing the contracts should do about this because, as I understand it, it's inappropriate for contracts to do API lookups.
And yep, those transferred funds are basically lost unless someone manages to create the matching account later on. But if the account name is a bad format, then the main chain won't allow you to create the account. I don't even show the bad-format account names in this rake report.
So I believe contracts could be enhanced to ensure account name formats follow the exact same requirements that the main chain does. Then at least creating the account would always recover the funds.