Uccnc will never run closed loop (as far as I am aware) because it runs on Windows and runs with a large buffer for data to the motion controller. 0.1 sec as default... My latency seems to be running at about 20mSec to 10mSec
No other windows based CNC software integrates a low latency or realtime solution..... So it's unlikely a low cost solution like uccnc will do so..... But who knows the future....
As far as I am aware (and my knowledge is limited to my own personal experience) servo drives incorporate their own position and error tracking via their own encoder inputs.... So it may be possible to swap the encoder on the end of the servo for a glass scale but it's highly likely that your servo will become VERY inaccurate.... Compared to the original solution of having the high resolution encoder on the end of the stepper motor.
Like I said my knowledge is limited to my own experience... I have 1 servo which powers my spindle on my lathe, it has a 20 bit encoder (1,048,576) .... Per revolution! Integrated into the servo motor... And it drives a 2:1 ratio htd G2 belt drive.... If this then drove a ball screw say 2.5mm pitch or 5mm pitch I fail to see how I could afford to buy a glass scale encoder which has a higher accuracy than the 20 bit one provided with the drive even with the 2:1 drive reduction.....
(My 1 servo drive is a ASDA-A2 with 750w ecma servo motor)
https://www.gapp.co.uk/asda-a2Linuxcnc is an exception.... In that it TRIES to run in real time.... Or as close as possible.... It has 2 loops one tries to run at 25uSec (40khz) and the other at 1msec (1khz)
http://linuxcnc.org/docs/html/install/latency-test.htmlIf you choose Mesa hardware then it runs at the slower 1khz loop with data buffered within the Mesa (motion) controller.
I say TRIES because there is always a small error which is based on what your pc hardware can do as it is being forced to run a realtime kernel.... Which is not interrupt driven as far as I am aware but uses a polling arrangement to check time elapsed (as far as I am aware which MAY be wrong!) Hence the latency (following) errors.... Close to the loop frequency but NOT bang on ..... If it used an interrupt based loop then it would be very accurate.... But it may suffer from incomplete packages of data being processed or sent (one of the consequences of using a Personal Computer to attempt to do microcontroller tasks.
Your view / others reading this may differ and I'm happy to learn something else as my experience is limited to what I have read elsewhere and my own limited dabbling with 1 servo and my limited linuxcnc dabbling with 1 Mesa 7i76e controller.