When you "create proc xxx with recompile" - When you execute that proc, a plan is cached and executed, and then immediately removed after execution. There is no other task that will ever reuse that plan because it is removed from proc cache.
When you "execute proc yyy with recompile" - After execution of the proc, a cached plan is left behind in proc cache, and can be reused by another task as long as it stays in proc cache. This is why in the documentation it states that it can swamp proc cache with many plans for this procedure if you execute in this manner repeatedly.
Disadvantages to either approach only really concern repeated executions, in tight loops for example. As Mark states, the disadvantage with "create with recompile" is the compile time incurred if the proc is executed many times. Disadvantage with "exec with recompile" is that many plans will be cached (one for each such execution), and force other plans out of cache. Not only that, you might not _want_ another task to get your cached plan because it was compiled with boundary parameters etc.