"외래어"의 사전적 정의를 보면 "외국에서 들어온 말로 국어처럼 쓰이는 단어"라고 되어 있습니다. 다시 말해, "외국어"는 그냥 다른 나라 말이지만, "왜래어"는 국어에 속합니다. 그런데 외국어와 외래어를 정확히 구별할 수 있는 방법은 없습니다. 말씀하신 것처럼 외국말에 해당하는 우리말이 있거나 없거나 하는 것은 매우 불완전한 기준입니다.
예를 들어, "커피, 바나다, 코코아...." 등은 해당하는 우리말이 없으므로 외래어라고 할 수 있겠지만, 사실 외국의 먹을거리 가운데 우리말이 없는 것들은 헤아릴 수 없이 많을 겁니다. 그렇다고 세계의 각 음식 이름을 모두 외래어라고 볼 수는 없을 겁니다.
반면에
테니스 - 정구
엘리베이터 - 승강기
터널 - 굴
등은 해당하는 우리말이 있지만 경험상 "테니스, 엘리베이터, 터널" 등이 외래어인 건 쉽게 인식할 수 있습니다. 결국 외래어냐 외국어냐 하는 판단 기준은 실제 우리가 일상 언어에서 얼마나 익숙하게 사용하는냐가 가장 비중있는 기준이 됩니다. (물론, 전공 분야의 용어는 이에 해당하지 않습니다) . 그런데 이런 판단은 개인마다 다르기 때문에, 우리가 외래어인지 아닌지를 판단하기 위해서는 국어사전을 참고해야 합니다. 앞에서 말씀드렸듯이 "외래어"는 국어의 한 범주이기 때문에 국어사전에 실려 있습니다(이때는 대사전을 참고해야 합니다).
말씀하신, "메뉴 .에러, 디스카운트, 캘린더" 등은 다 국어사전에 있는 말입니다. 물론 외래어가 "국어"의 범주에 든다고 하여도 해당하는 우리말이 있을 때는 우리말을 쓰는 것이 좋겠습니다.