Some simplification is possible. U2A and U2C can be combined by moving the current error amplifier to the high side. See the example below. Combining these functions also improves performance and makes frequency compensation easier.
Over-voltage tripping is more common than over-current tripping, and would commonly be done with an SCR crowbar on the output instead of disconnecting the output.
Taking voltage feedback from the adjustment pin is less precise. Taking feedback from the output removes noise and errors from U3.
The transconductance and therefor voltage gain of Q1 varies significantly with operating point, so the current control loop is going to be difficult to frequency compensate. More often Q1 is replaced by a diode so that the current error amplifier directly pulls the control signal down as shown below.
C2 and C3 slow the response of the current and voltage control loops. The example below is optimized for fast response although much faster than commonly needed.