Bottlenecks happen everywhere.
Sometimes there’s valid reasons for addressing technical debt and reworking things to be better in the future… and other times people are just rewriting working code because reasons™.
Encountering the latter can be quite demotivating, especially when it turns to nitpicking over small stuff or keeping releases back for no good reason. Personally, I try to lean away from that and more into the “if it works, it works” camp (as long as you don’t ignore referential integrity and don’t mess up foundational logic).
Depends. It definitely can be. When you get those people who want to spend weeks going back and forth over whether the button should be red or slightly darker red, as if they can somehow figure out the right answer from gut feeling alone, not realizing that in that time they could have tried both and learned from it, all while delivering other things of value on top, engineering has no hope of becoming the bottleneck.