thisThis is an old ticket; just wanted to add a note that I'm 99% sure we fixed this in 4.6 and 4.7 - and also added a PHP Unit test for it - so that makes it harder to break in future. I've not had any of our client reporting this issue anymore - however if you still experience this in a later version of either 4.6 or 4.7 - please do let us know.
Found the PRs: https://github.com/civicrm/civicrm-core/pull/6895 https://github.com/civicrm/civicrm-core/pull/6896
UPDATE: 1% it is! I just quickly tried to reproduce your exact scenario - and sigh... it is still an issue in 4.7.18 - will get this fixed. Slightly different pathway than the one we fixed above. In the screenshot below - non-deductible should be $0.30