The game really needs a(n unlockable?) "Zen"/infinite laps mode, I feel, at least as a feature in match race or time attack (for lap records) modes. The accelerating item roulette and other variables could just reset/oscillate back after the "normal" number of laps passes. This could be a good way to let players get practice in uninterrupted, especially on shorter courses. It would also, at the name implies, just be a fun way to relax and focus on a course; maybe even make the netgame-exclusive "customize kart" menu option available to really let players stay in the zone.
Also, higher-level CPUs (i.e. rivals or CPUS on gear 3/4) should have a (higher) chance to use custom colors and followers. This would make collecting them more satisfying. Perhaps rivals could even have not-yet-unlocked colors/followers as a "teaser" to motivate the player.
To continue that idea, maybe add randomly generated follower spectator crowds (i.e. in the stands in various maps and/or at least in the GP results screen, if it's too much hassle to retrofit the rest of the maps) picked from the followers that have been unlocked so far (+ any "teaser" followers used by your opponents). Maybe the results screen crowd could be made up of all of the rest of the racers' followers?
In the special, time attack, and prison break modes, the cup and map select menus should display your medals and/or personal bests. Currently, you can only easily view that data on the course details screen, which feels like a missed opportunity given the grand prix ranks & gems are already displayed.
There should be only one character/follower customization screen (in offline play*) and it should always save the character to your profile; the one embedded in the profile customization menu is missing information and is far out of the way relative to the one you use after pressing play, requiring the user to use the more informative one to browse the database, memorize their selections, and then navigate to the profiles menu to enter their new preference. Either unify these two menus or remove one of them.
*the kart customizer availabile from the "pause" menu when playing online, of course, is essential. However, even this may be allowed to affect the profile by...
...Saving the players' preferred stats and character name in their profile. This way, even if a server doesn't have their favorite character, the game can make a good effort to pick one that either plays the same or is related to (maybe use a
Soundex library?) (maybe let the player choose which is more important to them?) their favorite character.
This also reminds me, the game's filesystem could stand to be restructured on UNIX-like (linux, macOS) systems. I know Windows may be more haphazard, but on UNIX-like systems organizing your filesystem well can have some strong advantages. Breaking up the "ringracers" folder, for example, into ~/.config/ringracers/ for configs, ~/.cache/ringracers/{logs,netdata} for logs and server data (and maybe netgame downloads?), and ~/.local/share/ringracers/ for addons would allow for better consistency with other programs' standards, automatic management of the cache by the OS, and users' filesystem management methods. It sounds crazy, I know, but this is the way things are done in unixland.
Add the ability for add-on makers to define their own challenges to unlock their content.
Bind the console key (e.g. to tilde) by default.