To recreate the problem:
1. Set Default role for users in a course = Guest.
2. Create a new course X with an enrollment key and set Guest access = "Allow guests who have the key"
3. Login to the site and go to Login to X page (course/enrol.php).
4. Enter the enrollment key and press the "Enrol me in this course" button
In Step 4 enrolment was successful but no redirection occurs. The "Login to X" page is simply redisplayed. I can see that enrollment is successful using rolesdebug.php script. It shows that the user is assigned the Guest role in course X.
If in Step 2 we set Guest access = "Allow guests without the key," the problem does not occur. The user is redirected to the course.