For the fun of it and to double check my idea, made a brief comparison.
With green is Carlson's compensation for Ib, with yellow is mine.


CMRR with frequency of Vx (-CMRR is Zout, because the chosen AC stimulus was Vx=1V).

Transient response for a Vx swing between 5-25V, at 4 different CC values requested: 1mA, 10mA, 100mA, 1A
Changed mine a little from my previous pencil draft, by subtracting the Ib from Ie, such that the current through the R sense is kept the same as Ic, and by moving the second mirror emitters below GND (to give enough Vc for Q6 when V on R9 approaches 0V).
Pros:
- easy to integrate in an IC (no high value resistors, no laser trimmed resistors matching)
- has bigger Z, CMRR is with about 20dB better
- slightly faster response and more stable
Cons:
- doesn't behave well for very small currents (could be mitigated, but in this version it needs at least 3-5mA Iout)
- requires from the opamp double the current (could be mitigated by using mirror BJTs with area ratio other than 1:1)
- not suitable for discrete transistors (requires matched transistors, sensitive to thermal imbalance in the mirror BJTs)
