You're not missing anything. There is NOT an elegant solution to your problem. If you want it in a view you're going to need to add a custom column to display it.
If its truly computed (storing a fixed value in the database could be stale, as in your age example) then you'll need to add a plug-in on the post step of a Fetch message, parse the XML to determine if your entity is being returned, parse out the attributes which should be computed, compute the value, and then insert your computed attribute into the result xml.
Lets say you're not displaying the date of birth field in the view (you just want to display the age), then you're also going to have to have a plug-in on the pre step of the Fetch Message, parse the XML to determine if your entity is the one being fetched, determine if hte age column is being returned, and if so, inject the computation basis columns into the column set being returned.
Note that these plugin steps are NOT executed if you use the Filtered View's in SSRS reports, so you'd have to compute the age in TSQL in those cases. I don't think you'd ever be able to display the age column in CRM-created wizard reports (you can't get TSQL in here and the plugins won't run).
Given all that if you have something that CAN be fixed (concatentation), I would compute it in a create/update plugin for that entity and store it in a custom attribute (Fullname). In that case the attribute will just work for grid views, all flavors of reporting, etc.