Actually, you can partition the SD card into 2 or 3 partitions -- the first one fat32, for general storage, and then 2 ext2 partitions at the end, one for android system, one for data. (Or just 1 for the system.)
But to be effective for your purposes, it needs to get all the android files off the partition, so that the sd can be unmounted without losing access to any of the loop devices (system.sqsh, rootfs.img, data.img). There's a little code in our rootfs to mount system and data off of partitions, but that leaves the rootfs on the fat32 partition, so it's ultimately of no use.
Balsat has some builds that move everything to partitions. I'm not sure anyone but him has gotten a running system with his method, though.
(The partitioning method started with the Vogue port. People claimed having a dedicated partition would be faster. It turns out on Raphael it isn't, at all. At least not for me or those I've talked to who have tried it.)
All that said, I'm not sure mass storage mode even works. In Windows, I'm fairly certain it doesn't. However, if it does, you could try
this solution from the vogue users, which allows the sd card to be mounted simultaneously over USB and on device.
edit: To clarify, the dual mount sd widget would solve the problem of having to move all the files off the partition to be mounted over USB. But it costs money.