This is hardcoded into the function sh-set-shell which is called when sh-mode is invoked.
It's probably better to not touch that behaviour as it will also not display messages if it was not possible to set up indentation correctly.
You can hide the message in the minibuffer (will still be displayed in Messages) by placing an advice around that function.
Add a function to your init.el, and create a keybinding:
(defun unique-shell ()
(global-set-key "\C-z" 'unique-shell)
Now every time you press ctrl+z, it will launch a shell with a new name.
Inspired by @Melioratus.
Currently, org-babel provides a hook called org-babel-after-execute-hook. I extended the supported arguments of org-babel src block by using it:
(I'm using org-babel for elixir. If you want supports of other languages, extend cond by yourself.)
(add-hook 'org-babel-after-execute-hook 'semacs/ob-args-ext-session-reset)