Both can be realized by implementing your own recipient source. I think there is a sample code pack at http://world.episerver.com/Download/Categories/Modules/EPiServer-Mail/ which contains a sample recipient source where recipients may be added and removed one by one. There's no admin GUI for this, if I remember correctly the sample contains a page/control with a subscription form. So the idea is to let users add themselves to a list.
Maybe that would also fulfill your second requirement? If not, it would be possible to write your own recipient source which uses xform data as base store. You can in theory use anything as a source for recipients but you have to implement a recipient source which emits the recipients in the format EPiServer Mail needs.
Is there any way to update recipient lists from the EPiServer mail interface? As an alternative, is there any way that submission of a form in EPiServer CMS could add a recipient to a recipient list automatically?