I think there's some validity to your Observations 1 and 2.
However, even beyond that, the reduced strength settings for many engines are notoriously inaccurate. Some are too high, some are too low. It's just too much work for the engine programmer to calibrate the LimitStrength feature, so most either don't do it or don't do it well enough.
I've indeed noticed that the Rybka LimitStrength feature results in a too-strong engine, so it's not just your imagination.
I play Rybka set to low ELO settings, and I've noticed for some reason I play a lot worse against Rybka than human opponents at the same ELO or even a hundred points higher.
I've been trying to figure out the reason why. Here are some ideas I've considered to explain it, please tell me if you think these ideas are correct.
First, even if I set Rybka at 1200 ELO which is the lowest setting, it still uses a very wide range of openings and follows opening theory correctly for at least the first 7 or 8 moves. I don't think there are many 1200 ELO human players who would posess that amount of opening knowledge.
Secondly, I set Rybka to play instantaneously, both because I don't like to wait, and when it calculates for long periods of time it heats up my computer's processor. And I find when it plays instantanously, it seems to trick me into playing faster too.
Finally, since Rybka isn't a human, I don't feel the fear of messing up as badly so I have less motivation to beat it.
Does anyone else play worse against Rybka or Houdini or whatever engine you use? It seems like Rybka acts as my krptonite and when I play against it I usually do poorly.