I don't think it's a bug.
The "if" is one scriptword, the "{" another, "(" yet another, then 0x00 are 3 bytes in the .M (one word to define constant, and one byte the constant itself), and also ")" is a script word, and keep in mind the } literals are inside the M too, they are not added by the decompiler.
"if(0x00) { " ---> 2+2+3+2+2 = 7 bytes alone inside the M
It looks to me it's code OSI was testing with. I do that too when programming sometimes, not the best practice though.
What you could do is, provide a list with all scripts where you see this behaviour and I can see with the "normal" M Decompiler how those script functions are parsed to the execution objects.