int sensorValue = analogRead(44000); //why does this function accept 44000 as the pin # when there is no such pin?
The compiler does not know that your Arduino does not have 44000 pins. It is the programmers responsibility to not make these kind of mistakes.
int digital = digitalRead(A0); //Why does digitalRead accept an analog pin variable (A0)
Actually, A0 is an alias for using an analog pin as a digital pin, so this statement is perfectly correct. What is wrong is your understanding that A0 refers to an analog pin. It does not. 0 refers to analog pin 0. A0 refers to analog pin 0 used as a digital pin.
Now, the analogRead() function is smart enough to know that A0 (14 on a 328-based Arduino) is supposed to have been 0, and it will read from the correct pin.
digitalWrite(0,34770); //why does digitalWrite accept a number and not the variable HIGH or LOW?
//What does the number mean in this case?
Because HIGH and LOW are constants. The function has to be written with a variable type in the definition, so the developer chose (incorrectly, in my opinion) int. Whatever type is chosen has to accept any value that could be assigned to a variable of that type.
In most situations, the function would return an error if the input was not in range (LOW to HIGH), but how is an embedded processor supposed to deal with an out of range value? Ignoring it is the usual answer, but that is not always satisfactory, either.
analogWrite(8,100); //why is this accepted when pin 8 is not PWM capable?
It is, on a Mega. Again, it is up to the programmer to call functions with valid input.