I guessed that it wouldn't execute the procedure ion the 2nd batch, as the parser would detect the recursion and stop it. This seemed to be confirmed when I ran it with "Show Plan" turned on, which showed nothing.
I should have run Profiler as well, which would have put me right 🙁
Since the stored procedure doesn't contain any DML statements, you would not have gotten an execution plan even if there had been no infinite recursion in the proc.
That being said, actual DML statements that run into an error also do not produce an execution plan. Kinda makes sense because the actual row counts would be incomplete and could lead to bad tuning decisions, but on the other hand it would really be helpful for troubleshooting if we did get the plan of the failed query. But I guess it's never been a conscious decision, just an artefact of how run-time errors are handled internally.