no, it's an issue of compile time vs runtime typechecking. types are checked at compile time.
compare with:
array(mapping) b = ({ m }); foreach (b; ; int v)
write("%O", v);
Compiler Error: 1:Type mismatch for value in foreach(). Compiler Error: 1:Expected: mapping Compiler Error: 1:Got : int Compiler Error: 1:Variable type mismatch in foreach(). Compiler Error: 1:Expected: mapping Compiler Error: 1:Got : int
at runtime mixed can always be assigned to any other type.
i think the option for strict type checking may cause pike to complain because it won't allow to assign mixed to anything but mixed.
greetings, martin.