Ok, it's absolutely bizarre.
The 1 line spawns 49 blocks, but it's not what the code is supposed to do because of some built in chance.
But the 2 lines don't spawn all the way to the edge of the screen (same cloned group) because the code is working as intended, so it's an easy fix.
I thought the repeat x times (without a loopindex condition to end) was creating an invisible infinite loop, but it's not based on the number of spawned blocks checked with a text variable, just 49.
So it seems to be a bug, but the code works correctly in the multiple spawn line version, which is what I need.
If anybody cares, the code started working correctly only after the loopindex, variable resets, and #oflinesspawned were added (now does the same thing for 1 group or 2).
Otherwise it was counting a non-spawn because of chance as if it didn't happen at all and going to the next possible spawn (the internal loop index in the repeat) was not updating at all.
This doesn't seem to be explained anywhere in the documentation as far as I can tell.
Ok, I got this. Which is a bit ahead of myself
It's not a bug. The way I had it set-up with the variable checking for whether to execute the repeat or not, it wasn't updating the variable for the condition check because I had the variable incrementation done on only 1 out of 3 possibilities, so it could go up to 49.
What it fixed it was the variable reset on actual loop index check (it could no longer keep going up to satisfy the condition), thus doing the odds properly.
I learned a lot
(Sorry for the multiple posts.)