I disagree with Knuth's definition, I could come closer to agreeing if he meant that the instructions were finite, rather than the execution terminating, but I don't think he meant that.
I can think of 'algorithms' that terminate for finite input, but continue for infinite input... compression or encrytion for example. It's nonsense to say that these are algorithms only if they terminate at some point and otherwise are 'computational methods'. There may be some mathematical merit to such a distinction, but practically, it's not useful, and certainly it's not helping sort out the mess of patents to embroil them with terminology that isn't well defined or generally agreed on.
As for data structures, I don't see an argument for patenting them.
An OS is so large and complex that it wouldn't be practical to patent it. Surely it's just a collection of smaller parts that may or may not be patentable depending on the current rules?
I have heard it said that the masses use Facebook and don't worry about the possible downsides. I also recognise a vocal minority that reject it as a waste of time or because they don't like the way it works.
Personally I'm an avid user of FB, I 'get' social networking, but I also really dislike some aspects of it. I'm an avid user of Google search, Mail, Android, Maps, etc. and don't have any problems with their services at present.
So, I will be very pleased to spend my attention span on Google+ rather than FB. I'd relish the chance to share stuff with a bit more control over how. I won't miss the buggy and inconsistent ever changing UX landscape of FB and the way they munge your photos and randomly delete content they don't approve of (eg. links to my own ad-free blog). It's time for a change, I just need an invite :D