Firstly, architectures with one platform give you grass on rails, not rubies. Opting for still-imagery here, take a look at the Amerika Bahnhof. I pondered taking half a day off and take some pictures from Berlin's Lehrter Bahnhof (or, Hauptbahnhof). Anybody who's been there knows that it's a maze of platforms, aiming at different needs, operated by different parties (there are at least 3 different operators for local public transportation in Berlin). That doesn't count all those independent parties running shops and restaurants.
Mozilla is a train station, and it comes with a plethora of platforms. Platforms as in horizontal stuff to take off from. NSPR, NSS, Gecko (undefined in all levels of --with[-out]-technology), libxul, xulrunner, toolkit applications. Those are platforms for programming. I'd call Firefox rather a platform for web experience, not strictly one for programming, I see non-programming values in Firefox that form a distinct kind of platform, like privacy, security, good defaults, user choice. Then there's spreadfirefox, which is a platform to launch marketing projects. Not everything that is essential to a train station ecosystem is a platform, btw, and there are plenty of those in Mozilla, too.
Despite the fact that it took me me only a few minutes to write down some punch words for some of our platforms, Mozilla doesn't do a good job about defining which stuff we consider to be a platform or not. That doesn't mean that platforms need to be done, or that MoCo has to commit to get them done. They may actually be as much of a Baustelle as anything. Yet, defining them and giving them names makes them easier to find, and to fix, even. I consider the non-programming platforms vital for the train station ecosystem, too.