The data exists in Civi, but it's a bit tricky to get at.
When making a payment for a membership with additional donation the underlying database records a single contribution, but multiple "line items". Each line item is recorded with the correct financial type, as described in the price set. Oh yes - if you haven't enabled a price set on the contribution page in question, that's a required first step to setting different financial types on the different line items! Though be careful if you offer auto-renewing memberships - there's a bug that can break your auto-renew functionality if you use a price set if you don't patch it first.
Once you have the price sets, with each field using its own financial type, you're in business! CiviAccounts will export the data appropriately if you export data to your bookkeeping program. You can also use the Extended Reports extension to run reports on line items rather than contributions.
The one missing piece of the puzzle is to search on financial type data instead of contribution data. This doesn't exist currently in Civi. Someone started to write it, but doesn't have funding to finish it; if you need that functionality, please reply to this in a comment, I've been trying to round up folks to crowdsource funding for this feature.
EDIT: There's some work afoot to get line item search crowdfunded for core CiviCRM. Contact me if you're interested at http://palantetech.coop/contact. Meanwhile, some of you might be interested in this line item report extension.