I am planning to implement, as an exercise and for personal use, in a very relaxed pace, a GPS/Mapping/Cycling desktop application, with Python as the primary language. It must be cross-platform (windows and linux), and the graphical front-end should allow the following:

Relatively fast rendering of map tiles à la Google Maps, Bing Maps, etc. with panning, zooming, overlay, image-blending, etc.
Good support for retained-mode 2D graphics (routes, points) with direct manipulation, hit-testing, highlighting, selection, etc;
Good integration with multithreaded architecture (no UI freeze while performing calculations;
Preferrably good support to events-based communication between application code and GUI code;
Preferrably some support to 3D rendering with OpenGL or similar.

I have some experience with GTK, but I feel it too low-level, so I'm wondering if wxWidgets could be a good alternative IN THIS SCENARIO (rich graphics as a main requirement of the UI).
Any
wxWidgets probably won't help you a lot here. I.e. you should be able to do what you want with it but you will need to implement most of your bullet points yourself. E.g. drawing would almost certainly be done using OpenGL but using OpenGL in a wxWidgets application is exactly the same as using it anywhere else. And you will have to implement panning/zooming/hit-testing.
wxWidgets does provide decent multi-threading support for the typical background-worker-threads-one-main-GUI-thread scenario that you would be almost certainly using here too. And simple communications between the threads (although I'm speaking about C++ here, not sure how is it done on Python side). But then any other decent framework should provide this too...
Cross platform, python based, rich-graphics application for mapping and gps: GTK or wxWidgets?