Primitives like "cons" and "list" should not force their arguments because they are not strict (i.e. they don't need to know the value of the arguments).
It isn't clear if type predicates are strict or not. I can see arguments both ways.
If you notice a strict primitive that should force an argument and that doesn't, please let me know and I will fix it.
Marc