I gave a look at col.c and found a better fix for the tabs issue.
We simply need that col check for the previous char being a space, before adding any tab. That is, at /sys/src/cmd/col.c:251 replace
if ((++ncp & 7) == 0 && !xflag) {
with
if ((++ncp & 7) == 0 && !xflag && *(p-2) == ' ') {
This is a better fix that redefining col in /rc/bin/man since this way col correctly replace spaces with tabs when appropriate. It just stops to replace single spaces at positions multiple of 8 with tabs.
Giacomo
PS: col.c ignores $tabstop. This could be something to add in the man page. Or to fix in col.c (a really trivial fix, btw)