It looks like calling XIUndefineCursor() while it's inside the window doesn't actually reset the pointer cursor, it is only updated after a leave/enter event pair or another XIDefineCursor() call
Created attachment 29088 [details] [review] 0001-dix-when-unsetting-a-cursor-update-the-sprite-immedi.patch
Pushed as 993ca5acbdccef9e43cd6580e7cc22cfda1a2578. thanks for reporting.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.