Hi EndangeringSpecies,
Our business uses the Flex SDK and FlashDevelop to build SWF files. You can use a single source code file to do so, but the Flex build / configuration file is additional. Think of the Flex SDK as the compiler and linker and FlashDevelop as the IDE that makes the compiler and linker easier to work with. FlashDevelop does this by writing build scripts for you, providing syntax highlighting etc.
To answer your questions:
why are there dedicated ActiveScript editors, like FlashDevelop, if you cannot make SWF with them?
You would have to be more specific. But basically as long as you have the Flex software development kit (http://opensource.adobe.com/wiki/display/flexsdk/Downloads), it doesn't matter what text editors you use to generate the AS/MXML files you feed to the Flex SDK. In that sense most all text editors can be used to assist the process of generating SWF files.
"suppose I want to make a small SWF app, basically a couple of buttons, textboxes and event handlers. Something like this in C# or Java would be a single easily readable source code file that can be compiled with a freely available compiler and run. Now, I may be a clueless newbie here, but so far, from what I can see, the only way to make a file that can be compiled to SWF is to make a FLA file, and that requires the official IDE."
Using the MXML format, the Flex SDK and an editor (like FlashDevelop for instance) and a single file you can generate a SWF that allows the Flash Player to display exactly what you describe.
"Well, so if there is no way of going around the FLA file, why do people bother with the special editors for ActionScript?"
I hope I have clarified this for you now.
"Or are they actually able to somehow "debug" the app without seeing it in WYSIWYG format and without generating an SWF file?"
Of you have the official Adobe Flash CS IDE or Flash Builder IDE you have access to a runtime / step debugger. Otherwise most people use print-debugging, which isn't so bad in fairly synchronous (Flash is single threaded, so the only asynchronisity you deal with is through environmental activity such as network events and user input) environments with dynamically typed languages.
"If so, do they eventually generate an SWF file on a friend's machine that has the IDE or what do they do for the final product?"
We often get artists to generate animations inside the Flash CS IDE which we have output as SWC files (which is basically a SWF file and a Manifest XML document stored in a ZIP file, much like a JAR). We then tell the Flex compiler to include these SWC resources in the final SWF file and can refer to them from our source code. This is also dramatically faster than re-building the SWF from inside of the Flash IDE every time we want to test new source code changes.
Here are a few basic examples from the Adobe website:
http://livedocs.adobe.com/flex/3/langref/mx/controls/DataGrid.html#includeExamplesSummary
http://livedocs.adobe.com/flex/3/langref/mx/controls/HorizontalList.html#includeExamplesSummary
http://livedocs.adobe.com/flex/3/html/help.html?content=layouts%5F10.html
Remember Flex is just a framework built ontop of AS3, you can still just use 'Raw' AS3 by telling Flex SDK to generate SWF files directly from AS files.
I hope this helps clarify a few things!