Consulta por mais tempo adicionando condições WHERE não utilizadas

Eu acertei um problema interessante (pelo menos para mim). Abaixo está uma ideia geral da aparência da minha consulta. Suponha que @AuthorType é uma entrada para o procedimento armazenado e que existem várias condições especializadas em cada lugar que eu coloquei comentários.

SELECT *
FROM TBooks
WHERE
(--...SOME CONDITIONS)
OR
(@AuthorType = 1 AND --...DIFFERENT CONDITIONS)
OR
(@AuthorType = 2 AND --...STILL MORE CONDITIONS)

O que é interessante para mim é que, se eu executar este SP com @AuthorType = 0, ele será executado mais lentamente do que se eu removesse os dois últimos conjuntos de condições (aqueles que adicionam condições para valores especializados de @AuthorType).

O SQL Server não deve perceber em tempo de execução que essas condições nunca serão atendidas e ignorá-las totalmente? A diferença que estou experimentando não é pequena; é aproximadamente o dobro da duração da consulta (1-2 segundos a 3-5 segundos).

Eu estou esperando que o SQL Server otimize isso demais para mim? Eu realmente preciso ter 3 SPs separados para condições especializadas?

questionAnswers(3)

yourAnswerToTheQuestion