I am wondering if mining pools were originally thought about when Satoshi originally designed Bitcoin,
There is no mention of pooled mining in the bitcoin whitepaper, so I suspect that it wasn't "originally thought about when Satoshi originally designed bitcoin".
However, it appears that Satoshi was in favor of polled mining:
ribuck's description is spot on.
Pool operators can modify their getwork to take one additional parameter, the address to send your share to.
The easy way for the pool operator would be to wait until the next block is found and divy it up proportionally as:
user's near-hits/total near-hits from everyone
That would be easier and safer to start up. It also has the advantage that multiple hits from the same user can be combined into one transaction. A lot of your hits will usually be from the same people.
The instant gratification way would be to pay a fixed amount for each near-hit immediately, and the operator takes the risk from randomness of having more or less near-hits before a block is found.
Either way, the user who submits the hit that solves the block should get an extra amount off the top, like 10 BTC.
New users wouldn't really even need the Bitcoin software. They could download a miner, create an account on mtgox or mybitcoin, enter their deposit address into the miner and point it at anyone's pool server. When the miner says it found something, a while later a few coins show up in their account.
Miner writers better make sure they never false-positive near-hits. Users will depend on that to check if the pool operator is cheating them. If the miner wrongly says it found something, users will look in their account, not find anything, and get mad at the pool operator.
and if they are in fact a desirable thing to have as part of the network.
Pooled mining results in more total hash power in the network (resulting in better security), and allows more people to participate by reducing the variance so that mining isn't restricted to those that can afford to wait weeks, months, or years for a reward (or restricted to those that can afford enough hashing power to succeed in completing blocks frequently).
As far as I understand, with the way that the hashing/block generation works today, mining pools are 'encouraged' because you can have a pool where no particular miner has the information to generate the block and collect the block reward themselves.
I'm not quite sure what you are trying to say here. It is safe to create a pool because the participants can't steal the block reward from the pool. Polls are 'encouraged' because it reduces the cost of entry and reduces reward variance. If someone wants to (and can afford to) participate in solo mining, there isn't any reason that they can't generate their a block and collect a block reward themselves.
If with some other hashing mechanism it was enforced that the miners had all the information they needed to generate the block themselves, it would discourage pools because any pool member could 'steal' a block.
The fact that someone can generate their own block in solo mining doesn't prevent pools from creating blocks. The hashing mechanism has nothing to do with miners inability to modify the block.
Secondly, are mining pools desirable in the network?
Didn't you ask this once already?
I think I answered it.
There are many scare stories about pools having too much hashing power and potentially reaching 51%.
And without pools, there would be scare stories about a wealthy person having too much hashing power and potentially reaching 51%.
And really, a mining pool could be considered like a single node (a huge node) in the network.
It really can't. Since there is nothing that a pool can do to force the participants to stay with them. Participants are free to change pools as often as they like whenever they like.
I am reading back on when the blockchain fork occurred due to a bug in v0.8 of the client, and how mining pools were encouraged to downgrade to v0.7 to fix the issue. Whilst it was a good outcome, is it not very scary that in a distributed network, where one of the key principles if that you do not trust other peers, it is possible to convince enough hashing power to change client version?
If there weren't any pools, then the solo miners would have been asked to switch. There would be many less miners, so it wouldn't be much more difficult to communicate to them and arrange the coordinated switch.