Functional and non-functional works in software

I have heard many reasons as to why people copyright their software, one in particular involving comparing software to a painting or a movie, and allowing anyone to modify it would be like letting anyone paint over the Mona Lisa.

A counter argument by free software advocates to this is that 'Software is a functional work while a painting is non-functional'. I'm not sure of the official definition but to me, a functional work is something that has a purpose other than of entertainment or artistic purposes. According to this definition, wouldn't some software fall under this definition? For example, games and fonts.

They only exist for entertainment and artistic purposes (and to make money) so, according to the free software advocates counter argument, it would be fine to run such software even if it is copyrighted or otherwise licensed.

I'm sure someone will have a problem with this, please tell, I would like to hear your opinion.

You get something wrong here: You cannot copyright your software - copyright is already there, when you implement the software without any license. You are the author, you hold the copyright. You can explicitly free the software and push it into the public domain by using a license like the GPLv2.

Another thing are trademarks and patents: Software patents are only valid in the US. For instance I cannot even get a patent for my software since I am a German living in Germany - we don't have software patents. Trademarks are also not a problem by default. You can create a software and patent/trademark some sort of algorithm or data structure that you created - this is not a bad thing as long as you are not hunting people down since they've been using your trademarked algorithm. This can even be a good thing. Since you hold the trademark and eventually even a patent for that algorithm there is no way for companies like Microsoft to steal your code and patent/trademark it as a Microsoft product.

Conclusion: Copyright, Patents and Trademarks are not a bad thing by default - in fact they are like money: Wisely used they are helpful tools, in hands of foolish idiots they become destructive.

Addition: The messed-up part is that you are by law allowed to trademark/patent functional stuff that cannot be implemented in another way. Means: If you have found the solution for some problem that only has one solution and where also only one possible algorithm gives you the correct result, then you are still allowed to trademark/patent that. For instance: Someone could go out and trademark/patent the quicksort algorithm. Then most people would be forced to use a) quicksort only with permission or b) use another - slower - sorting algorithm - again: this is not going to happen by default - you as the trademark/patent holder have to be an asshole that tracks and hunts people down who use the algorithm - if you don't do it, it is still your intellectual property but no one is getting in trouble.

Also for clarification: Trademarks are only valid in one country. So a US company holding a trademark in the US has to get a second trademark in Germany to make it valid here. Patents on the other hand are internationally valid - except software patents.

A while ago Apple was trying to get a patent for rounded corners in graphical user interfaces - for god sake that was not accepted.