I think that software should only be protected by copyright if the source code is placed in escrow and made available when the company goes belly-up or when the (strictly limited) copyright period expires.
I think that the patent system needs to be thoroughly reformed so as to do a better job of covering software, hardware, and a blend of the two. John Carmack's example is compelling but if patents were handled properly the odds of such a thing occurring would be as remote as the odds of doing the same thing in your backyard workshop with a lathe.