It depends how big the missing piece is. First, let me be clear that I know nothing about Flash's internals. Everything I'm saying here is just as an example. But suppose Flash depended on a specific 3rd-party graphics engine, and a lot of Flash's own code was written to adapt and work around bugs in that code. Replacing it might mean either 1) making a clean graphics engine and rewriting a large part of Flash to work with it, or 2) implementing a bug-compatible engine.
May instead of a graphics engine, it's a proprietary video codec, or a bytecode interpreter, or a network stack, or a sound library.
Things like these are a big reason lots of projects aren't released as FOSS. Take something that looks simple on the outside, rip out its guts, and you're left with what exactly?
Flash Video FLV files usually contain material encoded with codecs following the Sorenson Spark or VP6 video compression formats. As of 2010 public releases of Flash Player (collaboration between Adobe Systems and MainConcept) also support H.264 video and HE-AAC audio.[3] All of these compression formats are restricted by patents. - Wikipedia’s page on FLV, the video format that YouTube was built around.
And these are definitely not a problem if ripped out because ffmpeg has them all. Source: I once wrote a (somewhat terrible) FLV player for an Android app that used libavcodec/libavformat.
May instead of a graphics engine, it's a proprietary video codec, or a bytecode interpreter, or a network stack, or a sound library.
Things like these are a big reason lots of projects aren't released as FOSS. Take something that looks simple on the outside, rip out its guts, and you're left with what exactly?