Hello Tim,
you are absolutely right in questioning my "very common" stance on this. In fact, it is common only in generic programming, but not so much for most downstream application development. That being said, there are quite a few great libraries (e.g. skunk or scodec) that are built on this mechanism. And while they are usually good at hiding this complexity from the user, you will eventually run into corner cases that force you to deal with it. This was also my main motivation for this blog post: to have a reference for myself when I run into this again.
Shapeless, as you may know it from Scala 2.x, is mostly superfluous in Scala 3 and it isn't published for Scala 3 either. However, there is a new "shapeless-3" project (https://github.com/typelevel/shapeless-3) which has a bit of a different scope. For common generic programming usages, the new Scala 3 features are absolutely sufficient though.