Ah, I know where those extra postblits come from: It's opEqual's pass by value. If we change opEquals to take by ref, and add more logs, then the second output is:
```
begin S2 construction
before 0
postblit 5
after 0
before 1
opAssign: 5 => 0
after 1
before 2
opAssign: 5 => 0
after 2
end S2 construction
```
This makes more sense, but it shows that initializing *members* of a static array is either buggy, or tricky business.