Can't you expand and than contract the 2d collision pane to avoid places to get stuck in? (instead of removing the chairs legs)
All passages should be quite a bit wider than the player and stay open and thin edgees or points don't get smoothed off/away.
edit: a player in a 2d hamster ball would do the same
I like your thinking. That end result looks great. IIRC, the original Quake actually does this exact thing in 3D so that collision testing can be done with points/lines instead of spheres/capsules. It generated something like 3 different fixed sizes (point, player, shambler) of collision data for each level. So if you wanted a solid dynamic object that collided with things, it had to be one of those sizes.
I do expand the shapes a little bit but don't contract afterwards since I want some separation between the player and the walls. The player is modeled as a circle, not a point, and currently the basic 2D circle/poly collision response is smooth enough at keeping the player out of small gaps that I haven't had to take it farther. Basically, yeah, a 2d hamster ball.