If the wallet now holds BTC50 and I pay out BTC10 surely it matters not that the BTC50 was saved up pennies ?
Yes, the fee is calculated from the size of the transaction in KB. If you send 1 BTC consisting of 1000 0.001 coins.. Hmm, no. That would be impossible, I think, because the transaction will have too many inputs to be valid. If you send 0.1 BTC consisting of 100 0.001 sized inputs, the transaction will be approximately 18 KB large. That means at least 0.009 BTC in fees, given a base fee of 0.0005 BTC per KB. Which means 9 more 0.001 sized inputs have to be added just to pay the fee, which increases the fee to 0.01 BTC, and another 0.001 sized input has to be added to cover that as well. If the input coins are young (recently received), it will cost even more. You end up paying 10% of the transaction value in fees.
A transaction of 0.1 BTC from one 0.1 BTC input received a long time ago (more bitcoin-days destroyed), is only 180 bytes of inputs and will normally be free if the input is old enough.