It’s interesting that you shared this, because in my searching I actually stumbled across a discussion that somewhat touched this topic, specifically the generic function allowed as a witness to a non generic function, and allowing a witness to return a covariant type.
I admittedly didn’t delve too far into it, but may when I have a bit of time. Swift is a fun and powerful language, but there are definitely some edges (as with any language) which are proving quite fun to learn about.