It’s a boring answer but also very true.
The first thing to mention is that game objects are cheap. You can have quite a few without any significant impact to performance. If it makes sense to separate an entity in your game into multiple game objects then sure, put them in a collection.
Yes, this is nice. For complex things such as bosses or characters with weapons that should be animated but anchored to a main game object it is really convenient to put all of the game objects in a collection.
This could potentially have a bit of negative impact on performance, especially if you have a lot of messages going back and forth between the different scripts on a game object. Also if you have multiple scripts you’ll end up with multiple transitions from engine native code across the boundary to the Lua lifecycle functions. The more you can collect your logic in a single script the better.
Yes, this is a risk with the approach. Especially if you have child game objects with collision objects that need to communicate collisions to a script on the parent game object.
I don’t consider this a big problem. The most annoying thing is usually when you start with a game object and a factory but later on need to change it to a collection and a collection factory.