eleanorjmorel I don't know your background in game developement but, I have over 10 years of experience working with Construct as well as Unity, Garage Games, Godot, XNA and programming games in Java, C++ and C#.
Your examples are not relevant in this situation. For Honor is a full 3D game as well as Unities pill shaped colliders. If this sprite was a composite object made up of multiple sprites, then this could be a little more approriate to the situation.
Your Celeste example actually shows a reason the separate collision object is a bad idea. If you define a hazard but your collsion bounds allow you to touch that hazard without being affected, that is a bad thing. I am not the developer of Celeste so I don't know what all decisison they made leading up to that situation so I can't really judge it.
What I can say is, using a separate sprite for collisions instead of Constructs built in collsion bounds SHOULD NOT be passed around as the "best practice" for every situation. It adds another object that takes up memory. It creates a generic collision size/shape for objects when the developer may want something more specific. It adds complexity which is harder to upkeep (especially if the project winds up being handed off to another developer).
Finally, I am not saying it is wrong to do. Just that pushing it as the end all be all for every situation is wrong. In this particular situation, I would not use a separate collision object. Your example of using the single object for multiple object types that have the same behaviors is one of the "specific situations" I referenced (however, this can be done using families without causing these other problems). As is composite objects. This will be my last responce in this post about this subject. boomerfreak1, hopefully you have enough information about this to make your own decision about which method is the best one for your project.
I'm taking your word over his. I don't think its correct to wrap sprites in things that aren't the correct shape in this instance at all. If it was unity it would be a separate issue which I've programmed in. For a precision platformer it doesn't make sense to have the wrong shape. Super Meat Boy is a great example of how they made the character square just so they wouldn't have to change the shapes, Other platformers like yooka laylee and such use collisions that wrap to the object or sprite correctly anyways. Thank you man. Your advice was helpful. I'll add juice in other ways and not have incorrect collisions.