In answer to the Blackboard question. We worked on this problem over this last summer but did not complete it. We have a prototype that allows you to login to WeBWorK through Blackboard --- and WeBWorK assumes that since you've come from Blackboard you are correctly authenticated.
As far as I can tell Blackboard doesn't allow other applications to authenticate against it -- at least for the installation we have at Rochester.
We also have not yet perfected the communication that will report back the homework grades for WeBWorK to Blackboard.
Hopefully we'll be able to finish this project next summer, but I can't promise much before then.
We do have all of these capabilities operating between Moodle and WeBWorK although even there the two "bridges" are still somewhat experimental betas.
We don't have an ability to self-enroll. That could probably be added by adding a new Authen.pm subclass module-- but again I'm not aware that anyone has done that already.
Hope this helps.