Por que colocar uma cláusula WHERE fora da exibição tem um desempenho terrível

Digamos que você tenha uma visão:

CREATE VIEW dbo.v_SomeJoinedTables AS
SELECT
    a.date,
    a.Col1,
    b.Col2,
    DENSE_RANK() 
      OVER(PARTITION BY a.date, a.Col2 ORDER BY a.Col3) as Something
FROM a JOIN b on a.date = b.date

Descobri que o desempenho de:

SELECT *
FROM v_SomeJoinedTables
WHERE date > '2011-01-01'

é muito pior que

SELECT *, 
   DENSE_RANK() 
     OVER(PARTITION BY a.date, a.Col2 ORDER BY a.Col3) as Something
FROM a JOIN b ON a.date = b.date
WHERE a.date > '2011-01-01'

Estou muito surpreso que o plano de consulta para essas duas instruções não seja o mesm

Também tentei usar uma função com valor de tabela embutida, mas a consulta ainda leva 100-1000 vezes mais que o código em que copio e colo a lógica da visualizaçã

Alguma ideia

questionAnswers(5)

yourAnswerToTheQuestion