if (Serial.read() == 'A' || Serial.read() == 'B')
{Serial.print("Something");}
OK, imagine you type just 'B'
The left most expression "Serial.read() == 'A' " reads the 'B' from the receive buffer, and it's false ('A' != 'B'), so it reads the receive buffer again.
But the receive buffer is empty (you just read the only character in it), so "read" returns -1. (-1 != 'B' either!)
byte val = Serial.read ();
if (val == 'A' || val == 'B')
...