Well, that was not an insult, simply a fact, as there is no way to call a code argument without open a new thread.
Therefore you can't make a better custom function than the native one "ForForce".
The problem is that I can't make heads or tails of what you have posted; I don't know how I can track it or where to start, remember I am still learning and don't consider myself a pro JASSER.
To use UnitLL, you have to understand linked lists and how they can be implanted and used with vJass structs.
Will it be cumbersome as having to create N threads ?
By cumbersome, i meant the code that is needed to be written each time you want to enum the units inside a group.
It could be still faster than a ForGroup (but i have not tested), at least it will be way more boring to write.
I suppose you could use textmacros or even modules, but it's spaghetti code >.<
Also note that there is the problem of ghost units with a such method.
A ghost unit inside a group is a group removed of the game but not of the group.
When an unit is removed of the game, the groups where the unit was referenced are not cleaned up automatically.
ForForce doesn't enum such units, but with a FOG (FirstOfGroup/GroupRemoveUnit) loop they will be enumed.
And FirstOfGroup will return null with a such unit, so the loop will be broken if it contains one or more ghost units which are not enumed the last (very likely).