Valid point. I guess my problem with computer code as IP is: At what point does something become too trivial to matter? A shorter method, a better-laid out object, entire modules, etc. Any computer language has a finite number of combinations (within a given length) that are valid code. If you and I write the same method, who decides if you wrote it first or I did?
Also, to be fair, I'm coming at this from the standpoint of a math major, not a business major. From a math standpoint, once a routine is written and it works in the most efficient manner, it should never have to be written again. For me to argue that it's mine when you have the same code only forces you to rewrite in a less-efficient way.