Hello,
I have followed the instructions, however, I had to replace the let expression by the following code to be able to use smsn-mode.
(add-to-list 'load-path "~/.emacs.d/elisp/smsn-mode-lisp/")
(add-to-list 'load-path "~/.emacs.d/elisp/smsn-mode-lisp/lib")
(require 'smsn-mode)
I guess that, as let define a "temporary" scope, the directory ~/.emacs.d/elisp/smsn-mode-lisp/, is added temporarily, only to the load-path list.