!str #16069 disallows using one Keyed sink/source ambiguously (many times)

This can / should wait for Patrik's move-all-the-things PR.
Refs #16069 
finally nailed it I think. Thanks for the continuous feedback @bantonsson @patriknw.
There has been a few nitty gritty details changed (like using `k1 eq k2` here), but I think this is good now.
Would you mind re-reviewing once more?