Yes, it's a workaround, but it's a legit workaround
I think I saw it in one of the official tutorials.
I guess you can do the same with a function. If sprites are overlapping, call a function, pass sprite UID as a parameter. Inside the function pick all sprites with UID<>param(0), check overlapping again and... not sure what's next. I remember doing something like this, but I don't remember how
The method with the family is much easier.