The first 2 reason are real things, but don't require everyone's full time presence.
It is helpful to have folks together for the head scratching design phase of a software project, but all that social time will be a burden later on in the project. It is also useful to have a relationship with your co-workers. In some situations the relationships can happen while everyone is remote, but it has always helped me to visit once in a while to do some bullshitting, if only with my manager. I find face to face time fosters empathy, but every day face time can be tedious and painful.
The last 3 reasons are signs the office infrastructure and culture will not promote helpful communication within the team regardless of where they are. I have been lucky in that I've never had a direct pointy haired manager. Every manager I have had worked hard to protect us from the pointy hairs.
I telecommuted from 1990 to 2015 when I liberated myself. I always started a new job with at least a few weeks on site so they could get to know me. At my last job at a large software company by the time I left most of the group I worked with telecommuted most of the time. It was to the point where facilities started poaching offices from some of my colleagues who lived close and only came in for meetings.