This approach can be taken too far. Reference counts may be best done
by putting a mutex around an integer variable, for instance.
But as a high-level approach, using channels to control access makes it easier
to write clear, correct programs.
I'm sure somebody has been banging a "Go programs should never use mutexes" drum, but it hasn't ever been the position of the Go team that channels are a panacea or that mutexes _shouldn't_ be used, as far as I've ever seen.
Work is what I do with most of my days. I'd like it to be as engaging and as socially connective as possible. I don't like commuting, but I'm planning for my next job to be in person.