Actually, I'm afraid this is not a Perl question. Is Mozilla written in C, I think?
What you're seeing is exactly what (Mozilla thinks) you're asking for, even if it isn't what you meant to ask for. The "source" you're seeing is the "source of this message," not the "source of this part." You're viewing the MIME source, which (as it happens) is 100% identical to the typical text/plain source, and 99% the same as typical text/html source, but can potentially be quite different - e.g. a base64-encoded text/plain message is entirely illegible (to me!) in source form.
The only way to change this, AFAIK, would be to change the behaviour of the MUA - i.e. Netscape. Since you can't directly change Netscape, it becomes a C issue -- you'd have to contribute to Mozilla and add an option such as "view source of only this part."
In the alternative, save a copy of the part (i.e. in this case attachment) to your desktop, open it back up, and view/source on it.
Appendix: Can anyone give a counter-example of a multipart message whose view/source does show only a single part? E.G. does it view only a single part if you read by way of a window viewing only that single part, or some other behaviour I don't know about? I'm afraid Netscape/Mozilla mail steadfastly refuses to work for my mailbox, so I can't confirm 100% that there's not something like this hidden in the UI somewheres...