1) In the Windows ecosystem almost every version has 4 parts. (e.g. file headers in exe, dll, assembly etc.) So it's impossible to use semver which only allows 3 parts. This seems like a major unnecessary roadblock.
2) IMO packaging tools should have fields to indicate the versioning scheme they follow, for example:
{ "version": "1.0.0", "version_scheme": "https://semver.org/spec/v2.0.0.html" }
{ "version"="19.02", "version_scheme": "https://calver.org/")
{ "version"="1.0.0.0", "version_scheme": "https://altver.example.org/winver/1.0.0.0.html")
{ "version"="1.0.0.0", "version_scheme": "custom")
Currently the tools pretend to know that "all" versions follow the same scheme. But in reality they just don't and never will.
Maybe also allow a prefix instead, but make it explicit and unmistakable (i.e. not "v1.0.0", but "semver2-1.0.0").