Whoa! Let's go through your list briefly:
1) SD cards are slow.
Slow is relative and I won't disagree, unless the "relative to" is NFS, in which case SD cards are blazingly fast. As in, even the worst SD card will still be 5-10x faster than the best average ethernet speed you are likely to get. WRT to wifi...multiply a few more times.
2) SD cards are unstable
Not really, but they are a common scapegoat for problems involving:
Defective pi's. This one may seem controversial, but there's more to go wrong with a pi than an SD card. If you flash two cards with an image and neither of them works, either you can't write an image to a card properly or the pi is broken. IMO lots of people reporting problems online fall into one of these two categories -- but of course they are convinced it's because SD cards are somehow problematic. There are hundreds of millions of devices that rely on SD cards running right now, and they're fine. There is nothing wrong with the SD card technology...on a balance of pros and cons, it's actually pretty great!
Incompetent system administration. Kind of a catch-all for, "I screwed my system up -- it must be the SD card!". No, it isn't. There are easy ways to check that.
Note that using NFS won't solve either of those problems for you.
3) To automatically backup all my raspis
4) Backing up SD cards via dd is time consuming.
dd
is hands-down the absolute worst, most ridiculous method of backing a system up that actually stands a chance of working. The only reason it's propagated by people is it is also the first and apparently easiest method they run across. I have another suggestion here, but there are lots of others around.
5) To more easily cross compile programs
How so? If the issue is repeat testing on the pi, use an install script that transfers the files to the pi appropriately. If that's not good enough, you still don't need to NFS the entire filesystem, you just need to NFS a staging area.