Git is already incredibly smart about merging things — what kind of improvements do you propose to make in this regard? In certain cases it simply isn't possible to automatically merge things, they require external knowledge.
In general, with the current tools provided by VSTS, Gitlab etc (Github is lagging behind a bit here), I don't think most developers on generic codebases have much trouble with versioning.
In general, with the current tools provided by VSTS, Gitlab etc (Github is lagging behind a bit here), I don't think most developers on generic codebases have much trouble with versioning.