Not even with vsync and bilinear filtering turned off. I also noticed that clock speeds will reset if you downclock in the homemenu and then start retroarch (or when restarting from the retroarch menu).
gpsp was recommended, from what i remember, because there was no other option. not sure when gba injection became a thing, but it still had those blurry filter issues early on, without savestates and such.
also, peoples definition of "playable" vary widely. many thought of the average 30-40 frames as perfectly playable, and some people argue that if the classic mario bros minigame that came with all mario gba games runs at 60fps, that's proof gpsp is running fullspeed.
for what its worth, what made me buy a n3ds back then, was fullspeed gba emulation. before i was aware of the crashing issues.