Here's what was wrong with the second bug hunt:
1) The LED was not initialized with pinMode() in the void setup function.
2) Two of the buttons are set up as INPUT, not INPUT_PULLUP. This means they will send a LOW signal when UNpressed.
3) The first tone command in the void loop is reversed with (250,A5); instead of (A5,250);
4) The else statement doesn't include a noTone(A5) statement so the tone will never be turned off.
These bugs illustrate that the compiler can only offer a certain amount of guidance. The computer doesn't see any problems with this code- it's all valid, but the code doesn't do what you expect.
This type of error can be really difficult to find, especially if you don't upload the code and observe how it's acting. If deducing the errors isn't possible by observing the program running, start going through it line by line, looking for errors.