Found nice article about query plan. In summery, query plan is cached not only with the queries but with the SET options. so if your query got cached with a ANSI_PADDING, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER and if you are running a acessing it with different set option that previously cached plan will not be used.
Also, depending on your application, DEFAULT set option will be differed,
Specially ARITHABORT setting is ON for SSMS while for ADO.Net it is OFF!.
Read the article, you will find it interesting.