Adhere to (or circumvent) stricter 2.11 variance checks

Focus is to get things compiling again. The places with
`@uncheckedVariance` might need review/deprecation.

Good old Liskov features heavily.

(forward-port of 8ddb8d31b3fbdf9bf0e715da94f1a2124e982afd)
Further variance problems in 2.11.0-M8.
Adhere to stricter 2.11 variance checks. (#598)