Companies want to take and exploit free/opensource licenses in exactly this way.
By putting in a clause for attribution for example, you winnow away the companies like Amazon who would totally want to fork and re-release without crediting you.
If a company doesn't want to credit you, and your license is dissuading them from forking your project, then the non-standard license has achieved its goal.
You can't have it both ways. It's like people complaining that the GPL is "viral". That's the whole point of it. Companies that don't want to re-contribute their source changes are dissuaded from using it at all.
If you put an attribution clause in the license, the companies that don't touch your code is the company you never wanted to use your code at all. You can't have it both ways. You can't say "I need the exposure so I use a totally permissive license" and then say "Oh but I actually want attribution in a way that if people knew about this requirement, wouldn't use it to begin with"
The author needs to decide what's more important then, getting a pat on the back, or contributing to OSS. It's pretty crappy using a permissive license so companies are willing to use the software, then trying to make them look bad for not following unwritten rules.