You also have to keep learning new bleeding edge stuff to not be out of business in a few years.
Plus doing a lot of side projects and extra work, always opens up avenues for new opportunities and helps you to meet with other smart people who often have something new for you.
All of this is work. And there is no way you can be good at this if you only work for 4 hrs a day.
Pick up a programming book in a new language and start reading. You will have similar limits around how much you can really learn in a given day.
That's not to say you can't be productive for longer periods but the sustained intensity decreases.
If we 'only wrote code' I might agree that 1/2 days would be max.
FYI - for the the same reason professional orchestras don't 'rehearse all day'.
That does not mean highly focused effort is the only valid type of work. But, it is very valuable for most programming jobs.
Further, cutting back hours often increases productivity even if you spend the same amount of time in the office.