it would seem a third way is being chosen.
I've seen it go the other way too. One guy used to show up at 6:45 and his bosses were not amused that he was nowhere to be found at 4:15 pm.
If we're being perfectly realistic here in this thread, some guys just want minions. If you're getting dinged for something it may have nothing to do with that thing. You're being kept in your place and/or raises are being controlled by getting you to agree that the things that make you different from everyone else are bad and you should feel bad.
If they run out of things that actually matter, they'll declare that every team member should be exactly as good at every responsibility of the group as every other team member, and everyone who isn't exactly average will have work to do (and get a smaller raise).
One of my favorite bosses derisively called this "punishing people for their weaknesses instead of celebrating their strengths."
So do you want me writing 20 minutes of lousy code every morning and having 7 hours to fix it, or do you want me to write 2 hours of lousy code and only have 5 hours to fix it? It's your choice, Sport, but choose wisely.