Not being an "expert" in the field (if one actually exists), all I can offer is an anecdote. I think people need both types of work at different times. As a technical lead for my team - I need to be available to point people in the right direction, help them with issues, and decide on some of the correct technical choices. However, when I am in the office I ALWAYS have someone from either my team or one of our other infrastructure teams in my office. My solution is to work from home one day a week. Even though I am available via phone, instant message, email, and even video call I don't get bothered much at all when home and can crank out code or documentation or even build system images without interruption. On the other days, I don't plan on getting too much of my own work done - but then my position includes facilitating the other folks on the team to get their assignments done. This has worked really well for me for over 5 years.