Thanks, all, for the feedback so far. First of all, I wouldn't get too worried as HAL would only be modifying parts of itself and not things outside. So your secret access codes and banking information should stay safe (I hope).
sybershot: I haven't seen TrinitySkit. I'll take a look.
Carl2: I'm not knocking the great job done by Zabaware. I'm just trying to develop a way of giving HAL some self-reflection capability outside of direct user interaction, like when you think to yourself how you could have done something better. HAL, being a computer application, would have stored all the necessary details to know which routines/plugins were used in each interaction, and using that info, would try to "better" it's own processing of user input in certain cases (ie. the scope of the plugin used).
The idea is to start with HAL making small changes, such as which relevance algorithm to use within a certain plugin or changing the order or logic checks based on the usage/success rate. An example I imagine would be HAL moving keyword matches up or down in order of precedence as they are used more or less frequently.
Thanks again for your comments! I hope to keep this going to help encourage me to start actually developing on this idea.