Let me add a VERY important piece of information. This strange behavior ONLY happens when I import the class that I want to test and declare a variable of it. Just declaring, not even using the variable in any test. As soon as I comment it out the tests properly update and pass/fail as they should. What gives?
FlexUnit does not have any type of cache. It only exists in browser memory so one run doesn't have any information about the previous.
The only thing that can be happening is that FlashBuilder is not rebuilding the SWF with your tests in it. Are you using the FlashBuilder FlexUnit Panel? The reason I ask is that when you do this Adobe creates a few classes on your behalf.. FlexUnitApplication.as and FlexUnitCompilerApplication.as which could be getting cached.
I would suggest a full clean. Perhaps consider manually deleting things from bin-debug too. Also, you may (and yes, this sounds dumb) want to delete the html-template directory. When you do so, Flash Builder will throw errors and you will need to right click on the error and indicate that you wish to rebuild the template. I have found situations where the browser seems to be caching the HTML generated and SWF and pretty much no matter what I do it won't give it up. This helps.
Those are my first thoughts but I can assure you FlexUnit itself has no ability to cache across runs.
No idea. Only thing I can think of is that the app isn't building when you believe it is and somewhere there is an error. Make sure you look at the date and time stamp of the FlexUnitApplication.swf (or whatever your runner swf is if you are not using that feature of flash builder)
Make sure it is really changing when you believe it is.
You may be correct on the SWF not building because of errors. My expectation I guess was that if there was an error and the new application SWF didn't get built that I would have seen some type of error stating so. I'll post back once I dig in a little further.