Running the selftest each time seems a bit excessive but running it never would not find installation problems. From my support experience all or at least over 90 percent of selftest failures happen right after installation. Of course with some Version number so that if we modify the selftest in an update we can easily trigger that it is run again.
The other things I can think of are that they find it if a user broke their config files by meddling with them, or when components are not installed e.g. gpgsm or scdeamon is not installed.
And as for Linux this is not a speed issue and breaking config files is also more of a Linux thing where different versions might be installed etc. I would just keep it for Linux the way it is.