After some investigation it seems like KP_x symbols are sent but resolves into standard number symbols server side.
I found this is Xvnc source code:
* X11 generally lets shift toggle the keys on the numeric pad
* the same way NumLock does. This is however not the case on
* other systems like Windows. As a result, some applications
* get confused when we do a fake shift to get the same effect
* that having NumLock active would produce.
* Until we have proper NumLock synchronisation (so we can
* avoid faking shift), we try to avoid the fake shifts if we
* can use an alternative keysym.
And there is a configuration param that toggles this behavior on/off. With other words it is possible to turn on the fake shift numkey by adding argument '-AvoidShiftNumLock=0'. An KP_x event will produced using a fake shift numkey.
The reason behind this is that VNC doesn't do numlock sync, see bug #400.
Relevant upstream commit:
*** This bug has been marked as a duplicate of bug 400 ***