Os pesos do PIS/PASEP são os mesmos do CPF?
Não. O CPF usa pesos decrescentes de 10 a 2 (e depois 11 a 2 no segundo dígito); o PIS/PASEP usa a sequência fixa 3, 2, 9, 8, 7, 6, 5, 4, 3, 2, que sobe até 9 no terceiro dígito antes de descer, e não tem um segundo dígito verificador recalculado sobre o primeiro.
Por que o resto 1 também vira dígito 0, e não só o resto 0?
Porque "11 menos o resto" só funciona para restos de 2 a 10; aplicado ao resto 1 resultaria em verificador 10, que não cabe em um único dígito, então a regra intercepta os restos 0 e 1 antes de subtrair e fixa o verificador em 0 para os dois.
Meu validador aceita um PIS/PASEP com dígitos repetidos tipo 11111111111, está certo?
O algoritmo módulo 11 sozinho não rejeita sequências repetidas, do mesmo jeito que o CPF também não rejeita por conta própria; se seu validador precisa barrar esses casos, é uma regra extra de negócio, separada do cálculo do dígito verificador.
Preciso validar os 10 dígitos da base antes de calcular o verificador?
Só confira que são exatamente 10 caracteres numéricos: o algoritmo aceita qualquer combinação de 0 a 9 em cada posição, então a validação de formato (comprimento, só dígitos) deve rodar antes, e a validação de dígito verificador depois, como duas etapas separadas.