Storedprocedure is compiled when it is run for the first time,
Then it is uses the cache for the next run. If you want to compile it on each call we could give WITH RECOMPILE option. This is will reduce the performance since the excution plan is created always.
For DML on views there are some restrictions please checkhttp://msdn.microsoft.com/en-us/library/ms187956.aspx