How to enforce the selection of at least one term from a custom taxonomy?

No. This is not completely possible. One solution would be to swap out the default UI on /wp-admin/post.php & /wp-admin/post-new.php. You can provide the user with radio buttons or a select box. This will work relatively well, but can not be 100% trusted. There is still the possibility that a user could remove all terms via quick edit in /wp-admin/edit.php.