Yes splitting them up is much better.
The only reason you should have secondary services there is if main service is using them exclusively.
Having a single compose file for multiple unrelated services sounds like a nightmare to stop, start and debug if one of your containers is acting weird.
Say for example you have something that needs a mysql server and you have no other use for it beyond that container, then it should go in there with the main seevice.
But then you eventually add another service which also needs a mysql backend. Do you add another mysql instance for that specific service? Or you could separate your existing one into its own compose file and just connect the two separate apps to the single instance.
Here’s the way I have mine setup. https://github.com/DanTheMinotaur/HomeHost/tree/main/apps
I use an ansible job to deploy and run them.
I remember in the ipod days plugging a CD into the aul PC and ripping all the files as aac… A format that would only play in iTunes