And how easy is it for extension writers to ensure that they are not holding too many or too old references to objects in their code?
Given how popular it is to say Firefox consumes a lot of memory, I cannot quiet see how the Mozilla Foundation hasn't found time or will to, for example, write a tool that will track the memory usage per extension. Shouldn't be that hard, just keep track which extension created each object and then use GC to find out the number of bytes reachable from those objects. At the cost of some memory ;). Not sure if the competition does that, but I can easily imagine how having memory management per-tab eases this issue a lot.
My 'solution' to the problem is use use ulimit -v 2000000 before Firefox and start it when it dies.