I've had that happen also, that's what caused me to come up with this question.
We recently had a deploy script that dropped and recreated several stored procedures something like:
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID('SP1') AND type in ('P', 'PC'))
DROP PROCEDURE SP1
CREATE PROCEDURE SP1
For just one of the SPs, the developers forgot the GO at the end, so one of the SPs got created with the DROP statement for the next SP in it. Apparently the SP that had it's drop added to the stored procedure before it didn't exist, so the script ran without errors. It took me quite a long time to figure out "the mysterious vanishing SP" issue that day!