As far as I know, you can't update an addon while the game is running, so you need to login and back out every time you change the code. isn't this really cumbersome and annoying to test addons?
If you make changes to already loaded files, you can refresh them by doing /reload ui . This will not help if you are adding new files to the addoin however.
/reload reloads the UI, but doesn't reload the client's index of the folder structure. Any files added to the addon's folder will require a full client restart - however, simple modifications to a single file only need a /reload.
The reason restarting the client is recommended when updating addons is that, to the end user, it is rarely apparent whether or not the author added any files.