¿Por qué no puedo LLAMAR "SI" y "PARA" ni por lotes ni en cmd?

Para ser honesto, no espero una respuesta satisfactoria aquí. No se puede llamar a este comando y eso es todo (por lo que sé, los únicos comandos que no se pueden usar con la llamada). Aquí hay algunos ejemplos con su salida:

C:\Windows\system32>call @if a==a echo called 
',' is not recognized as an internal or external command,
operable program or batch file.

C:\Windows\system32>call (@if a==a echo called)
';' is not recognized as an internal or external command,
operable program or batch file.

C:\Windows\system32>call if a==a echo called
'if' is not recognized as an internal or external command,
operable program or batch file.

C:\Windows\system32>call for  %a in (1) do @echo called
'for' is not recognized as an internal or external command,
operable program or batch file.

C:\Windows\system32>call @for  %a in (1) do @echo called
'+' is not recognized as an internal or external command,
operable program or batch file.

C:\Windows\system32>call (@for  %a in (1) do @echo called)
';' is not recognized as an internal or external command,
operable program or batch file.

Tengo algunas sospechas de que IF y FOR no son, de hecho, comandos "reales"; simplemente deciden pasar el control de la línea de comandos a la línea (o bloque de corchetes) detrás de ellos o no, lo que confunde la llamada. De todos modos, incluso cuando se detectan errores de sintaxis en FOR for o IF, se detectan:

C:\Windows\system32>call (@if a= echo called)
= was unexpected at this time.

C:\Windows\system32>call (for %a (1) do echo called)
(1 was unexpected at this time.

Así que al menos se hace el análisis.