Кодирование != шифрование, это, я думаю, вы и сами понимаете.
Кодирование — произвольное преобразование исходной информации в другой вид. Часто это делается для хранения/передачи данных. В таком случае прямое преобразование называют собственно кодированием, обратное — декодированием. Кодирование == преобразование (причем не обязательно обратимое, например mp3).
Шифрование — частный случай кодирования. При этом, в отличие от кодирования, фиксируется цель данного преобразования — предотвращение несанкционированного доступа. Ну и (наверно) шифрование обязательно обратимо.
По пунктам:
1) Да.
2) Как синоним — однозначно нет. Как более общее понятие — в принципе да, но по возможности лучше использовать наиболее специфический термин.
3) А можно ли кодировать сообщения при помощи DES? Можно. Но чтобы подчеркнуть цель такого кодирования — защита информации, лучше использовать слово «шифровать».
С помощью base64 можно как кодировать информацию (так делают в email), так и шифровать (правда этот способ шифрования не слишком надёжен), в зависимости от цели применения.
Некоторые программы «шифруют» пароли пользователя, причём могут делать это даже без использования мастер-пароля, например браузеры. Несмотря на то, что тут нет ключа (мастер пароля) — этот процесс называют шифрованием, из-за его семантики.