DjSt3rios, when you say "once extension is reloaded from external directory", do you mean it's being loaded from a network drive or something similar?
For the most part, Chrome does not expect the contents of an extension to change while it is running. This applies to unpacked extensions as well.
Normally, Chrome will periodically check with CWS for new versions of the currently installed extensions. If a new version is available, Chrome will download it, unpack it, (when appropriate) reload the extension, and finally dispatch a runtime.onInstalled event. When working with unpacked extensions, Chrome doesn't have a reliable external signal for when it should reload an extension, so the user has to manually signal when to reload by clicking the reload button on the chrome://extensions page.
That is all somewhat complicated by how and when the browser loads and caches extension files. In some cases, files are always fetched from disk. For example, the HTML for an extension's popup should reflect what is currently on disk while an extension's background script will not automatically pick up changes on disk while the browser is running.
Finally, the way a user installs new versions of the extension may impact if and how problems appear. For example, I just observed on macOS that a content script will not update if you load an unpacked extension, then replace the contents of the extension's directory with the updated files, but it will update if you drag and drop the extension's directory into the chrome://extensions page. Assuming you have declared a key in your manifest, the second approach will trigger Chrome's update handling logic while the first one will not.