There are two parts to WeeWX: the code, and user data. Code is most of the things in /home/weewx/bin. User data are the 'archive', 'public_html', and 'skins' directories, plus 'weewx.conf', plus the 'user' subdirectory (/home/weewx/bin/user). In Version 5, this separation will become explicit.
You can always reinstall the code. You don't want to reinstall the user data because you will lose your previous settings and data.
The setup.py install method explicitly recognizes this separation and does not touch the user data with one exception: it does create a new weewx.conf, but it will just have the same contents as your old weewx.conf, plus, possibly, a version number change. For older versions of WeeWX (V4.2 and earlier) it may also make some changes in your new copy of weewx.conf to reflect configuration changes. Newer versions of WeeWX do not do this. In any case, it always saves a timestamped version of your old weewx.conf.
Bottom line: you can run setup.py as many times as you want. All you will do is accumulate timestamped weewx.conf files.
Same with the upcoming Version 5: you can reinstall with pip as many times as you want. Just don't run "weectl station upgrade" afterwards.
Hope this helps.
-tk