As regards q42, an Unspecified Transaction Context is different from no transaction context. setSessionContext() and afterCompletion() methods have no transaction context, whereas ejbCreate will run in a UTC.
p499 of HFEJB states all methods which will run in a UTC. If you look at the spec, Section 17.6.5, page 363 this gives more detail on what a method in an unspecified transaction can do. You can still access Resource Managers and other beans from within an unspecified transaction context.
I think you are definitely right with q49, though I must confess I never noticed it myself!