Originally, SWF required winelib to run. Wine (as you may or maynot know) is a piece of software which allows some Win32 software to run under Linux. It is not an emulator as such, more a layer between the software and the OS. It doesn't always work, but is a good start. By using Winelib, the Mono developers hoped to use an existing technology to implement a greatly needed piece of the equation.
The problem was that winelib was constantly changing, which meant that the mono implementation of winelib was more that likely not going to work at any given time. As it was also having to go through an intermediate layer, the overall performance was slow (in some cases, unusable).
SWF using Winelib has ceased - infact, the developer branch has not used winelib for quite some considerable time now.
Novell decided to stop development on SWF using winelib and to implement SWF natively on the machine. Given mono is a cross platform language, it had to be a system which any OS could take make use of. To that end, a form of "glue" was developed. The glue intercepts the call from the code and then converts it to the native windowing system call for whatever is in use.
As the code is now classed as "managed", SWF has become MWF and as of 28/12/04 is built by default from either the main or developer source tree.
If you've ever used VisualBasic (or any of the Visual family) you will have come across a form generator. It is a very quick and very simple method designing windows with objects dotted around the place (very much like what glade is to gtk development). In C#, these forms are covered by SWF - basically, it is an easy way to create a window quickly and simply.
SWF can be used by any language supported by mono.