well you never have separate objects for one model in video games, unless it a game with high graphical quality. witch in that case you keep objects such as hair and eye as a separate object.
if you make cars or other vehicles then you might want to keep small detailed objects such as the “window wiper?” weels, door handle, numbersign etc, as a separate object. and that is just because you dont want to add extra loops just to fit those.
for CG however, or any case where you make an image or animation, you might want to keep parts separate, and this is to keep everything simple to work with, and also having a good topology. lets take a gun as exsample, there are several parts that is sticking out, so it would be easier to keep those separate rather than adding a lot of extra loops to fit them.