I must add r_drawflame to DirectQ and restore timerefresh (no front-buffer drawing in D3D tho...

)
Some other possible causes come to mind here. Flames are static entities rather than dynamic, so depending on how you handle adding static entities to the visible edicts list you could find that you're adding each entity multiple times as frames build up. That would certainly hurt performance.
The cause here is that static entities get added during R_RecursiveWorldNode, which will get called multiple times during a timerefresh, but the visible edicts list is only cleared in CL_RelinkEntities. So if you have 5 torches in your scene, each frame will add an extra 5 torches in addition to those that have already gone before. By the time the final frame comes around you could have thousands of torches in your scene, but looking like there are only 5 as they'll all occupy the same 5 positions.
This is a slightly insidious problem because it doesn't show up so badly in normal gameplay, so you may not even be aware that you have it.
Putting a sexy particle effect on the model could be a bad idea here; depending on how efficiently you draw particles, of course. But my bet is on the static entity adding being the cause.