Regarding Win2k3's software RAID "bug", the rebuild is a side effect of the filesystem not being flagged as "properly" shut down, and is most likely intended behavior.
I don't see how you could actually design software RAID in the OS to work any differently and still guarantee data integrity, which is one of the major points of RAID to begin with.
It would be different if you were using a dedicated hardware controller, because then you could have an onboard controller running microcode to manage the data cache and make sure that everything was flushed properly, even if the OS crashed.
I understand its intended behavior, but it's poorly implemented to say the least. I also understand that system failure at the time of a write could result in a loss of data integrity. But this shouldn't make my RAID array unaccessible upon restart. And it most certainly shouldn't result in a loss of all data on that array. At the very worst it should simply automate a "synchronization" upon restart, making sure that all data matches parity, while allowing me to still access the array as it does its synchronization. What's the point of destroying all data in the name of data integrity? Have others experienced this same thing? When Windows issues a raid rebuild after system failure, does this result in a loss of data as I experienced?
But even if synchronization comes back as OK, that doesn't mean that our file that we were writing at the time of failure finished properly. It could have written correctly a portion of a file in that all data that was written matches the parity, it's just that not all of the data was written of the file. This would be no different than a non-raid scenario, and would require that we be aware of which file or files were being written at the time of failure to ensure that they were completely written. Given that I'd have to be cognizant of at least this possibility, I don't see a whole lot of benefit to rebuilding the array simply to flag to me that a file that was being written during system failure is out of sync.
It would be nice to do a registry hack to always trick Windows into thinking that the filesystem was properly shutdown.
One way that I can see a software RAID getting around this problem, at some expense of writing performance, would be to have a portion of one of the drives in the array used to store file I/O information before a write. You can store the most basic necessary information needed to specify which sectors would be written to. If system failure occurs while this information is being written, then no big deal, as the true data was never even attempted to be written. But if a system failure occurs after this I/O information was written, then upon system restart it can check if there are any I/O data in this area and synchronize just those sections of the array.