1. When you are the smartest in the room, you can get away with 40 hours because what you produce in 40 hours will be orders of magnitude ahead of what a normal guy produces in 80 hours. Trouble comes when you start being part of super smart teams (mine has about 9 engineers sharing around 150 years of systems/db building expertise amongst them). Here 40 hours gets you only to the 'achieved level'. For some people this is not good enough, especially if they come from a continuous string of 'excelled levels'.
2. I am not paid to do 40 hours of work. I am paid to get things done. Some things are automatable (which we do) but a lot of things require NLP and is hard to automate. These we do manually. They add up.
3. It is VERY hard to hire good senior engineers. My company (Amazon) pays a ton of money, has offices in great cities but still we find hiring hard. This means you won't be offloading a bunch of those anytime soon and to be competitive, you have to do this.
4. Many of us do this not out of coercion, but because we want to. I personally have a set of goals, own a bunch of stuff that I really want to get done. 8 hours is not enough.
5. As you grow senior, you spend a ton of time co-ordinating work. This means unless you dedicate time before and after regular office hours, you personally aren't going to get coding done. And somethings require your personal coding/debugging effort - no way around it.
Family setup is personal: At least in my case, thankfully my wife chose to be a home maker and a full time mom. This frees up a lot of my responsibilities and allows me to focus harder on my job for the betterment of the family as a unit. YMMV.
EDIT: I always plug my team, so will do it again here. We are hiring. If you want to work with world class engineers in a great & growing service (AWS DynamoDB) - PM me. I chose this for the learning and no regrets till date.