I agree. I typically come in at about 9:15am, leave anywhere from 7pm-8pm, and it's not because I'm some great worker. It's because I need to finish up the sprint and too much crap is happening around the office.
I don't know that I wouldn't work late even if I had a private office, but I do think that I'd be able to accomplish more.
I found that when I am really working and focus on producing quickly, I get tired much sooner. As if, there us some max I can achieve during day, faster or slower.
Of course then, I am tired also in the evening and that limits what I can do in the evening. (If I am too tired to code, I am also too tired to play logical game or learn something.)
I come in at 10-11am and leave at 4-5pm (including an hour of lunch). The rest of my work I complete from home. There's no need to be in the office for all of your "workday".
I don't know that I wouldn't work late even if I had a private office, but I do think that I'd be able to accomplish more.