STATUS,C is not a PBP system variable. You can use it.

FOR loops, REPEAT/UNTIL, WHILE/WHEN, DO/LOOP all do not use the system vars (as long as the test condition is = or !=).
They will use system vars if the test condition is <, <=, >, >= etc.

Speed differences between any of the loop types will not be significant on a real chip.
The major slow down with this interface is the timing required to activate inputs on the 595 using the capacitors.
All those delays in the code make writing to the LCD very slow.