I don't know about the overhead - depends on your perspective.
I put mqtt in all my arduino devices with about a dozen lines of code. Doesn't seem too burdensome to me.
But, if you mean having to have an mqtt broker at all, then yes. You have to have a broker SOMEWHERE on an always on system, and some people don't like that (which I can understand).