Developing a program ( real software ) for a non-free platform is big encouragement by loud communication ( actions speak better than words ) to use or continue using that non-free platform.
There are two issues here: the practical effects, and the message conveyed. The practical effects are mixed. Making free apps run on non-free systems paves the way for some users to migrate to free systems, and for some users eliminates a motivation to migrate. So it has both good and bad effects. I don't know which effect is bigger, but I speculate that the good effect is bigger over all. The negative effect is limited to power users, people who might switch systems as if it were an easy thing to do. Most users are reluctant to change operating systems at all. The part of the practical effect that is negative is something we cannot prevent. If we were to delete the Windows support from Emacs or GCC, that would not stop people from running Emacs or GCC on Windows. The sort of people that would choose an operating system on this basis could easily maintain and redistribute such code. The other issue is the message we convey. That is something we can control, but it also shows the difference between these two cases. Providing a recipe to install a non-free program is very direct and clear support for its use. Making your free program work with something non-free if that's already installed is not such a direct message of support. It makes sense to treat the two cases differently.