Procedure is compiled at the time when we execute it first time. On creation time only it's definition got stored in database. For every subsequent runs, it is for sure pre-compiled.
If you create any SP, you will find that there is no cache entry for the execution of that SP.
After running the SP for the first time, the entry for the cache is made in the system.