I say ban 'em all.... (or is that kill 'em all) .... either way, if the law was enforced to the letter, (it is getting closer and closer), rather than the intent, it is quite possible that no one could do anything, write anything, code anything... heck you couldn't breath because SOMEONE had already done it before you.
In so far as code is concerned, I say don't take whole programs, heck, don't even take subroutines from programs, BUT, if there is a line of code that does a specific task, it has generally been held that the line of code does not constitute a copyrightable work unto it's own ....
Now ... what I think might be a good alternative IF you need to incorporate the code of another program, you could use the subroutine as local to your program, and utilize the output.
For example if someone writes a routine to do a specific task and you want to include that task, either rewrite the code yourself OR call the subroutine from your program as an external module. In this way, I think (in my non-expert opinion) the original code owner will retain ownership and his code will likely get more exposure because you will notify users that if they use your code they will need to also have this other specific program installed.