With all-grain, there are a ton of factors that can affect yield. An efficiency of 79% isn't bad at all.
To answer your questions:
1 - No I don't think so, but water chemistry is a possibility. I wouldn't worry about that one.
2 - Any amount is acceptable...it's up to you as to what is acceptable. Any recipe book should be used as a starting point IMO, and you should make whatever changes sound fun. None of them ever end up being perfect clones in any event.
3 - heat of sparge water, speed of sparge (go slooooow), oversparging, undersparging, grind of your grain, age of your grain, type of grain, water chemistry, lack of vigorous boil and subsequent evaporation...a lot of things really
I wouldn't stress it...just add a bit more grain. As homebrewers, we can afford that solution. Cheers!