Thanks for your feedback, Sock Master!
Fortunately, most of the stuff you mention are things I've been thinking about. But since you took the time to come up with good suggestions, I'll try to go into details about them all, even if I'm guessing it will be sort of foreign to most other people.
I don't know if this would go against your rules of authenticity, but it should be possible to reduce some of the sprite flickering by substituting some stationary sprites with equivalent background tile graphics.
A good example of this would be replacing the 4 barrels next to Kong with BG tile equivalents. It won't affect the gameplay, but it'll reduce the per line sprite count.
Also the oil barrel, maybe even the oil barrel flame, possibly Pauline.
Hammers, Hat, Purse and Umbrella too maybe...but that might get messy when positions don't align with tiles or the objects overlap other BG graphics like ladders.
This was my original intention. Particularly the barrel stack and Pauline. However, since basically all of the graphics you mentioned are intended as sprites, none of them align properly to the background grid, which is an issue not only in terms of graphic tiles, but also the use of colors, which is limited to a set grid of 16x16(!) tiles on the NES.
So for example, the barrel stack currently uses four 8x8 tiles (it could technically do with two and mirror them, but for some reason the vertical barrel actually isn't completely symetrical - one pixel is off), but due to how tightly they are packed, I'd need around ten or so tiles (I actually made a mockup graphic that I could use for reference, but I don't have it here) to draw it correctly, and the bottom part of the bottom barrels would still have to be sprites due to the color limitations mentioned earlier - in fact, they even overlap slightly into the girder tile, due to the way slanted girders are drawn. And once Kong starts to run out of barrels (if you let the timer run out), you'll need even more graphic tiles to display empty spaces where the barrels used to be - once again, because they overlap across the grid.
Even the oil barrel would be an issue, since I need a way to handle Mario (who normally goes in front of backgrounds) to go behind it. I did however do something very similar with the yellow elevator pulleys, as those line up nicely to the backgrounds. What you see on that stage is actuall background graphics (the arcade uses sprites, as you probably know), but whenever an elevator goes behind a pulley, a hidden "half" sprite appears behind the background to mask it. Before making that change, the left line of elevators was pure flicker hell
I actually think the biggest potential gain would be changing most of Donkey Kong into background graphics on the non-pie stages. But it would also be the most amount of work. Not only would it mean huge changes to many parts of the original code, it would also require a lot more graphics data, since Kong is aligned differently on different stages, and you have stuff like his hands going in front of his chest, and all of the currently mirrored sprites would have to be excess graphics data, as you can't flip background tiles.
Anyway, I'm considering doing something like this, but it's a lot of work for minor gain. Another thing is, that to include all the extra graphics data I've mentioned, I'd have to bankswitch the graphics ROM around, to fit it all in there (that could double as animating Kong with less effort, though).
And although bankswitching was very common on later NES games, so I'm guessing it's fair game, I'm kind of happy that I was actually able to fit all the graphics from the original game into a single bank of 8KB CHR-ROM matching the earliest NES games, by reusing parts of sprites and flipping some of them. Check out the CHR-ROM in an emulator's debug tools to see how tightly it's packed.
Also, if it's not already doing it, you can turn off the 3 black square sprites above the top ladder during gameplay and only enable them when Kong is climbing the ladder at the end of the stage.
That's exactly what I'm doing.
The "3 black square sprites", are actually 6 sprites on an NES. Another thing that caused a crazy amount of flickering before I changed it. I'm actually using solid color sprites (since all sprite palettes are already used up) hidden behind a black (but not "transparent black") background graphic to mask Kong as he climbs. A classic NES trick.
The black sprites next to Kong on the rivet stage are also not drawn. Obviously no real reason for those.
Finally, Kong uses up 10 sprites, but often enough one or two of them are blank sprites. If you added a bit of code to turn off the sprites when they're blank stamps it should ease the flicker a little bit.
Already did this, "unfortunately". Took me a while to notice, actually, since the sprites in question are $70 or something like that. But freeing them up, helped a lot.
(update: I tried it now, runs really well I only noticed one teeny bug so far, I think I ended a game when Pauline's "Help!" was on the screen and it didn't erase when it went to the high score screen.)
Thanks! I'll add it to my list of issues and fix it when I get the time.