Daid has had very little to do with the new Cura, so he wont be able to answer in depth answers about it.
Plugins in itself have little to do with the .json files. The json files are for printer settings. The plugins are much, much more. If you have settings for your plugin, they don't really have a place in the printer json files (because if someone uses a custom printer, the plugin wouldnt work).
The disabling of plugins is indeed a bit broken. Its on our list.
You should not use values / methods that start with an underscore! Python does not have private / protected members, so we indicate those by starting with an underscore. You should -not- acces _value directly but use .getValue() or setValue() respectively. If you directly change the value no events are passed to other parts of the code (hence it being private).