When loading a module, zbx_module_item_list() is called to populate the keys -> functions list.
I believe the documentation specifies that this function is optional; it doesn't appear to be so. (Sorry: I forget exactly where I read that.) The documentation should state that the list returned by this function is static – it cannot be altered during lifetime of the loaded module.
What I am looking for is a method to extend that list. I'd like to have new keys added (which point to an existing function in the dynamic module of course) in order to provide new items.