Хранимая процедура должна компилироваться (и в этом случае только создавать план запроса), когда она создается и выполняется впервые.
Если вы часто используете WITH RECOMPILE, вам следует остановиться. Если вы делаете это для принудительного пересчета планов запросов, потому что разные параметры работают более эффективно с разными планами запросов (и, если это имеет значение, с точки зрения производительности), то вам необходимо рассмотреть возможность создания разных SP для разных планов запросов, возможно, с помощью " родительский "ИП" решает, кому звонить. Но это не безболезненное упражнение.
Если ваши таблицы действительно относятся к категории строк, составляющей менее миллиона, то я бы очень внимательно посмотрел на индексирование и поддержание статистики в актуальном состоянии, периодически перекомпилируя в спокойное время, чтобы обеспечить эффективность планов запросов. Когда вы попадаете в десятки или сотни миллионов строк, может возникнуть необходимость преодолеть боль дублирования.