Okay, just briefly (not having tested anything yet) - I think it seems that AndersG is right: the error is related to your bindings not using the proper namespace - to see if that's the case, just uncomment your Nasal bindings in the config.xml to make them do nothing - i.e. prepend a hash/pound sign and see if the issue (error) persists or not (it probably won't).
The next step, would be to add a new line to the binding to make it dump the namespace, e.g. beginning at globals, or the addons own namespace using debug.dump(globals) - you will want to look for stuff like
__addon[n]__Besides, I may have missed it, but you also need to io.include() view_handler.nas, or none of its symbols will be loaded into the addon's namespace
Again, I think AndersG is right, and that you'd be well served by looking at Philosopher's namespace browser - which is the equivalent of the property browser, just for browsing nasal namespaces instead of properties - with a "namespace" really being just that: a named dump space for variables that fit into a certain category/class, e.g. because they are specific to a certain addon.
Looking at the problem at hand, I believe we can do better to make this more convenient, and less awkward admittedly ... once you have found a generic solution, you may want to keep Torsten in the loop, who's explicit encouraged addon related feedback to hopefully improve the framework over time.
PS: Regarding your edit/last comment, I believe/assume, that <nasal> modules would still be loaded into an addon specific namespace that lives under the addon's namespace, but Torsten should know more ... Again, the namespace browser certainly has all answers, and more