I think what you're asking is: Isn't it stupid to accept regular overtime? I don't think anyone denies that there's going to be times when you have to stay late or come in on a weekend... The problem arises when that becomes a regular pattern, as is often the case at many companies.
Part of the reason why this is predominant in our culture is due to the nature of a lot of programmers -- highly obsessive, and one dimensional (as in limited non-programming interests). Often young and without families to boot.
Google is the prototype here: Less than 1% of its employees are over 40, and they try to take away all the reasons you would have to leave the campus - from on-site meals to fitness centers/classes to shiny new laptops to dry-cleaning, etc...
So if they weren't spending 60 hours per week working at a startup, they'd spend 40 hours per week writing code for their employer, and another 20 per week doing something on the computer, whether that was contributing to open source or just chatting about programming on sites like these.
As for employers needing to "give in", for the most part it's a buyers market for talent right now so they don't need to. Just take a look at the stackoverflow classifieds, and see the amount of hoops some of these companies want you to jump through -- solve some puzzles, take a test, have a prolific github account, have X+ years in specific versions of technologies, make a custom page declaring your love for the company, etc...
They can do this because they'll still be flooded with resumes from people that can meet most or all of the qualifications...