Por que inserir o bloco de instruções TSQL quando o nível de isolamento da transação para outra transação é serializável com filtro não conflitante?

Os níveis de isolamento de transação serializável evitam o problema de leituras fantasmas, bloqueando quaisquer inserções em uma tabela em uma transação que estejam em conflito com quaisquer instruções de seleção em outras transações. Estou tentando entender isso com um exemplo, mas ele bloqueia a inserção mesmo quando o filtro na instrução select não está em conflito. Eu apreciaria qualquer explicação sobre por que se comporta dessa maneira.

Script de tabela

CREATE TABLE [dbo].[dummy](
    [firstname] [char](20) NULL,
    [lastname] [char](20) NULL
) ON [PRIMARY]

GO

Sessão 1

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
begin tran
select * from dummy where firstname = 'abc'

Sessão - 2

insert into dummy values('lmn', 'lmn') -- Why this blocks?