And why not require :: before <…> everywhere? That would be possible, but it would add quite a lot of visual noise in cases where it doesn’t solve any ambiguity.
Perhaps we should have an alternative syntax that doesn't require further disambiguation. We have Unicode identifiers, why not Unicode punctuation? Here are some brackets that are visually similar, but unlikely to be confused with < and >:
IDE support could make it even better. When you open up code that uses < and > as type parameter list delimiters, it could automatically render them as (for instance) 〈 and 〉 instead. And with a little context-sensitive partial parsing, the IDE could also render them correctly as you type, and if you ever type ::< immediately know that it should be replaced with 〈.
This idea is mostly a joke, unless other people also like it, in which case it's not a joke and how dare you make fun of my genius idea.
Personally I'm against unicode brackets purely because my keyboard doesn't support them well. But to be fair, the Raku(perl6) has all sort of unicode operator support including this atomic integer operations.