You can already do this several ways. First, you can use our list population to load up a combo or list using another BO to which the foreign key is bound. You can see this in the CRM sample as well as the sales video on the website. The second option is the BrowseDialog control. You can "pre-set" the initial search values and launch the BrowseDialog and use it as a "picklist."
We do not have a "generic" factory class that will allow you to spawn any type of class. Is this what you are looking for?