4. Previously there was no way to tell import_backup_file_silently to create a new course - it required an existing course to restore into. So yup, it is relaxed, and if it's not there, a new course is created.
5. Hmm. I wonder about this actually, surely in php5 objects are always passed by reference anyway, although I guess in Moodle 1.9 we're not requiring it yet. I guess the reason is that I'm writing to $restore, but as you say, I could rework that to use SESSION instead.
6. I think it's logical to return the new courseid, but maybe that's too much for 1.9. As you say, it's in SESSION, so I'll use that instead.
7. Yep, Good catch, definitely. I think for 1.9 we just keep returning $status, and maybe for 2.0 should return the new courseid (if $status is true, or no exceptions are thrown, or however you're handling errors in 2.0)
If you're happy with 4, I'll rework the patch to change 5, 6 and 7.