If you're in a bad job and can afford to leave, without knowing additional information, you probably should.
In all my experiences ranging from the trades (construction), investment banking, and software development, the overwhelming consensus as I have understood it, is that companies/managers/presidents/etc want you to be that good worker bee and not step out of line.
Good leaders generally respect you if you can show those skills you mentioned, in the context of the narrow band of their work.
A previous manager I had said the following (in regards to hiring lower-level management positions): "we love ex military folks because they're good at following orders and not taking an independent approach to a problem" i.e. they're drones in this respect.
Include more worker protections, something akin to what many European countries have done and I think we'd find ourselves one step further towards a more harmonious/happy society.