If you check BOL for CREATE PROCEDURE you will find it...
You could use it for test isolation. Say you are upgrading a procedure that is used in a few locations of an application, and you want to target a specific section in testing for using the new version of the procedure... Or in some cases, more then one developer shares a test database, and you need different versions of the same procedure during development.
You could also use it (instead of using fully independently named procedures) to place different optimized version of the same procedure together.
Anyone know if there is a performance hit from having multiple versions in the same procedure?