I see, well you might get a better answer from a Jupyter dev. I use the autoreload extension to automagically pull in my lastest code [1]. It usually works. For your second question you can connect multiple frontends to the same kernel [2].
[1] https://ipython.readthedocs.io/en/stable/config/extensions/a...
[2] https://jupyter-notebook.readthedocs.io/en/stable/examples/N...