These are many questions for one question. I will try to highlight some of the main topic of the workflow.
The approach you are describing with a clean ActionScript project with swc: s linked in is probably the most common approach (at least when it comes to more complex projects), because you want to separate the code from the content as much as possible. Usually I work with one artist, so we synchronize the functional design, and then I determine how the scene objects should be structured (for example, a container clip with XYZ-child clips, naming, linking and all that) so that it matches the current structure or new supporting code.
You do not need any code on the flash pro timeline; you want all this in your ActionScript files. Ideally, as a programmer, you will not need to go into the flash scene project. However, in reality you are likely to be. I usually try to keep this on my own placeholder, so I don't pollute production files with tests and placeholders. You also really do not want several people to edit the same scene at the same time. One approach is to divide the scenes into several projects. If you are making a card game, you might have something like this: card.swc, mainScene.swc, opponents of .swc. It also allows some concurrency if you work with multiple artists.
Saving flash pro files in xfl format makes it a little more convenient for source code control, and you can actually merge two versions of the same scene, but sometimes it can be a little more complicated. I usually solve this by creating quick functional graphics for notes that can later be replaced by an artist (or display graphics from code).
When it comes to IDE: s, I think the most popular ones are FlashDevelop, Flash Builder, and IntelliJ IDEA (with Flash Builder as my personal favorite). Start with one and try some of the others at one time. Make sure the features you use all day are really good. However, if you were only working with a professional Flash environment before something becomes a dramatic performance improvement.
I for one search priority, refactoring and ease of monitoring the program flow, which simplifies debugging and quickly gets into the code of other people. But it all boils down to finding a tool that works at a frequency that you can tune your mind into.
Hope this answers some of your thoughts and questions. Feel free to follow them.