When a new transaction is made, the client seems to prefer older coins in the wallet.
What is the rationale for this? Are there any cases where it doesn't make sense to strictly collect coins by age?
The Bitcoin.org client only cares about age when a coin is real recent (like in the last day). Any coins older than about a day are all treated equally.
The reason recent coins matter is because the client wants to lessen the chance that legitimate spending would be considered as being spam or a denial of service attack.
If coins were recently received and then are being spent fairly quickly right after the network can't know if that is someone trying to grief the network or if that is a legitimate transaction. But a transaction made with older coins is almost certainly not being used for the purpose of griefing the Bitcoin network.
So then by requiring fees for "spam-like" transactions, if an attacker is griefing the Bitcoin network it is going to have a cost.
That's the extent of it -- a way to make attacking bitcoin expensive while allowing normal, legitimate use to remain low cost or free.
The older a coin is, the less its ownership is disputed.