I used to really try not to over-license in the small companies I worked at. It seems I’d spend a few days every quarter or two counting up usage, asking people what they did, looking at logs, and eventually calculating our needs. Then compare the needs to what we’d purchased and I’d price out software. Typically I came to this conclusion.
It didn’t make sense to try and manage Office applications or SQL Server CALs. It was work, and it distracted me from other things I could be doing to make the company more productive. If we were over-licensed by a few hundred dollars a person, it was a waste of my time. And what I found was that we were rarely overlicensed, and as soon as I didn’t give someone Powerpoint or a SQL Server CAL, they’d request it.
I know that licensing is expensive, and not everyone needs all software, but there is a core set of software, and this likely includes SQL Server CALs, that should just be purchased for everyone and then ignored. It’s too hard to do anything else, and it’s likely a waste of time.
I do think that you ought to try and combine SQL Servers where possible, and share the instance with multiple databases, but I don’t think that it’s the same with clients. Get ‘em and forget ‘em.