well the R&A view of it is;
"As a guide, generally two-ball rounds should take no more than 3 hours 10 minutes; three-balls should take no more than 3 hours 30 minutes, and four-balls no more than 3 hours 50 minutes. In fact, shorter round times than these should be the aim of all players, where appropriate"
and i find it hard to disagree with that.
I think a lot of problems can be caused by golf clubs trying to cram too many groups out at the same time with only 6 or 7 minute gaps between those teeing off. Also, of course, there is the more troublesome issue of people having little awareness on the golf course but that can fill up about 100 threads all on its own.
Can't agree with you about St Andrews though, I spent about 8 summers working as a caddy at Carnoustie and 4.5 hour rounds were basically accepted as the norm - if you were off in less you were delighted. It was all too common to be out on the course for 5+ hours, especially when you were in one of the last visitor groups (last time 4pm on a weekday so still off by back of 9 and it is light enough for golf until 11.30pm or so in the middle of summer)