Gosh... just adding my 2 cents... I don't understand what all the controversy is. The original post returns the results exactly the way I'd expect such code to return for the way it's written. Running proc A directly produces and error where expected and continues running... as expected. The TRY in proc B shortcircuits proc A as soon as the appropriate level error in proc A occurs.
And, yes... the use of TRY/CATCH [font="Arial Black"]DOES[/font] change the functionality of the code insofar as the operation of errors with a severity of 11 or greater... the code is operating as designed and documented in Books Online.
Now, if you really want to have some fun, throw a transaction into proc A with SET XACT_ABORT ON. 😉
--Jeff Moden
Change is inevitable... Change for the better is not.