My opinion is:
User-Agent should never have existed and should not exist now.
By leaking software version information you are giving some kind of compromised or malevolent web site a free kick (assuming that the User-Agent string is telling the truth). You are telling them how to target you with malware that works on your combination of software. You are telling them which exploits have been patched and which exploits have not been patched. How dumb is that?
As others have said, it is also a privacy problem.
Part of its rationale for existing is that most early browsers had quirks that had to be worked around by the web server (content). What worked in one browser worked differently in another browser or not at all. That was particularly the case with Javascript that attempts to do more complex things. However there is a clear purity v. pragmatism trade-off there that some people won’t like.
I have seen some web sites that will not work at all unless a User-Agent string is present, even recently. So it may not be practical to suppress it completely (even though that is the cleanest option).
Minor elaboration to that … the User-Agent header in HTTP is standardised - up to a point.
The syntax to be used in that header is standardised. The token values that identify particular browsers or particular software products are not, as far as I know, standardised i.e. there is no IANA registry for them.
However it is worse than that because the official syntax for the User-Agent header allows comments and comments can in general contain anything. Comments have only the bare minimum syntax restrictions and no semantics - but of course web servers are free to apply semantics to a comment nevertheless.
For example here is my current User-Agent
Mozilla/5.0 (Windows NT 10.0; rv:43.0) Gecko/20100101 Firefox/60.0
The part in parentheses is a comment, not user agent information. The remainder is standardised syntax for user agent information i.e. 1 or more occurrences of:
product-token optionally followed by a slash character and a version-token
Needless to say that I have my browser configured to send false information for the User-Agent (resistFingerprinting option, which includes but is not limited to sending a false User-Agent).