Congratulations, that can be a truly useful piece of code for advanced validations!
As for your question you might know that MssCRF1_Validate() isn't kosher because you have the widget ids there, but you could make EnforceRegexMatch public and use that in your eSpace and send the widget id runtime properties as arguments.
As for the way to do the GetWidget() it will work now and in the next version and we can help you change it if there are breaking changes in future versions.
I would also like to remind you that data type validation (e.g. numeric, date) is already performed implicitly by the platform. On the server side you just need to check for the valid runtime property of the EditRecord widget.
Let me know if this was clear.