With ilisp we could launch various implementation invoking by a command of same name (M-x sbcl, M-x clisp-hs, etc). Then, it would create a buffer named for the implementation instead of *ilisp[1]*. It was then easy to know in which implementation we were working and to switch between implementations, because they were distinguished by the buffer name, clearly indicated in the mode line and in the buffer list.
Now, slime confuses all this, naming all its buffer *slime-repl[N]*.
One thing that could be done is to add the implementation type in the prompt, perhaps with something like:
(defun package-string-for-prompt (package) "Return the shortest nickname (or canonical name) of PACKAGE." (concatenate 'string (lisp-implementation-type) " " (or (canonical-package-nickname package) (auto-abbreviated-package-name package) (shortest-package-nickname package))))
but I think it would be better if slime named its buffer for the implementation type. *clisp/slime[1]*, *sbcl/slime[2]*, for example.
(It may be useful that the inferior lisp buffer includes the implementation type too, or includes always the same "reference number").