Is it me, or seems to be highly dependent on gameplay style? I can assert I usually have issues with morale, but I can see where you are coming from.
Perhaps, to prevent keeping too much data around, you could be "immune" to the morale boosts of the last type of morale-boosting items used (instead of keeping a list of recently used items and effectiveness values...). For example if you are using food items, you gain much less for consecutive food items (for example if you eat candy and a chocolate bar, you'd get less from chocolate). That is, unless you have the gourmand trait, which would make a lot of sense here (instead of giving higher morale, prevent morale penalties). Actually, perhaps a stacked list (last in first out) of 3-4 of such items (like drugs, magazines, etc) can work, that would be efficient and do the trick, requiring at least 3-4 measures to raise morale.
I think MP3 players shouldn't decrease that much since they depend on batteries, but their effect can be modified slightly. After being nerfed I see it doesn't give huge amounts, but could still give that bonus over a larger amount of time (which would be more realistic, as battery-based MP3 players usually give 3 hours of battery life. Just reduce the bonus of every individual song so the effect is not so immediate).
Also I just noticed a good bunch of actions do not have proper morale drops. Eating raw meat should have a larger morale drop since the player character is most likely an urbanite. As mentioned previously, drinking toilet water should also be penalized. Eating rotten food should also have a proper morale drop (forgot the value but I think it was nothing special, if any).
Being trigger happy can give you a morale drop if you are low on ammo or with no ammo at all, or even with no guns (that'd be a bit extreme though, wouldn't be a fan of that, but can be solved with a crossbow/pipe weapon or nailgun I guess. Please discuss)
Lastly, I notice from let's players that they never care about their armor being torn to shreds. Thus they never invest on tailoring to repair or reinforce clothing. Being in tatters should actually give a -10 (unless having a "naturalist" trait? hah, just kidding).
That way, even if a marginal decrease, it will be listed in the morale screen making people aware that their armor is a mess, also promoting use of sewing kits.
EDIT: Are rain coats still bugged regarding their "reinforced" status?
EDIT 2: About the tattered clothing. How about actually using some color in the inventory screen? Items that are empty or broken could be listed in a different color, perhaps bright red or gray (aka non-bright-bit-white).