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: https://github.com/TigerVNC/tigervnc/commit/1753a93da571479a0cc1a90261376d2eb8350890
*** This bug has been marked as a duplicate of bug 400 ***