Why do you think that you have the right to waste the employers time and money watching youtube videos, updating facebook and surfing the web. They are paying you to work, not to have fun. Sounds like you're just an asshole slacker.
I might agree somewhat if GP had talked about 25 hours a week or something, but 40-50 hours of true working time a week in a programming job without slacking is bordering between heroic and impossible.
Nobody I know can really program -- or do another similar mentally intensive and somewhat creative work -- very efficiently for even 8 hours a day without having small breaks every now and then. If you don't have those breaks consciously, your brain begins to have small breaks every now and then, your concentration will falter more easily, and you begin to make more mistakes. Even if you think you're constantly working at full steam, your brain probably isn't. The difference is that making those breaks conscious (and not having superiors watching you all the time as long as you get your job done) is a lot more comfortable and less stressful than trying to force yourself through without them to no avail.
Of course there's the occasional case of deep hack mode now and then where you can focus on your single task for hours and hours on end, at least seemingly without loss of productivity, but most people certainly can't keep that up all the time. Perhaps some exceptionally focused people can do it a lot of the time but most people certainly can't and would just be cheating themselves if they pretended so.
For that vast majority of people it's simply inevitable that working 40-50 hours a week (as GP said he did) will mean mental breaks every now and then, much more often than 2x10 min + lunch per day. I'd say that regularly working upwards of 40 hours a week in a programming job doesn't make much sense in the first place, though, for the very reason that most people will have their productivity suffer if they try to do that. They simply wouldn't get much (if any) more work done in total if they tried to do 50 hours per week rather than, say, 35. The total work done would just span over a longer period of time with more breaks and non-productive periods in between, whether conscious or not.
If GP's managers in the job he described didn't understand this, and they were actually monitoring him to make sure he (supposedly, not actually) was getting things done all the time, they were fighting against the very reality and were doing so at GP's expense, and probably also at that of the employer because GP wasn't at his most productive. I fully understand his frustration with the situation.
An anecdote is always just that, but sometime last year I was working part-time around 25-30 hours a week on a project (mostly non-programming, though, but in a software project nevertheless), and if I wasn't at the most productive I've ever been, I was at least damn close to it. That is, I've got more things done within an single week than I got within a single week at that time but the productivity I was able to sustain for a few months was almost certainly higher than that of any other period of similar duration. I was highly motivated and was working pretty intensively and productively (not entirely without surfing/youtube/whatever breaks, but with relatively few of them, and with strong concentration), but I certainly couldn't have kept the same pace for even 35-40 hours a week, much less 50. I'd probably have got less done in total if I had tried to do that. If someone had forced me to do that and expected me to do it without any slack, they'd have also shot themselves in the foot, not just me. My managers were smarter than that.
I appreciate high motivation to work but it should be motivation towards getting things done, not towards sweating your ass off. The amount and quality of "done" in a programming job doesn't scale with the amount of effort infinitely, and maximising the latter rather than the former just makes no sense.