И все-таки термины "разведчик" и "шпион" различаются не только эмоциональной оценкой. Разведчик - это, если можно так сказать, военный шпион. Просто шпион - не обязательно военный: например, существует экономический шпионаж.
Вообще оба термина присущи пропагандистскому языку. Сейчас более распространен универсальный "агент"
