Upstairs didn't even know that C existed. Telling them that we didn't find C isn't something they can reasonably deal with. As I said before, the only reasonable action they have to take is to request the deletion of the directory a second time (although more likely they're just going to wrap this in a `try!()` block and end up passing this error even higher up).

If the path that was passed to `rmdir_recursive()` ends up returning `FileNotFound` when that is ultimately deleted, I can see returning that error (although personally I have no problem treating that as success as well; the path existed when we first called `readdir()` so this wasn't a case of the caller giving us bad input). But for nested files that the caller did not explicitly mention, I do not see any value in treating that as an error.

It's also worth noting that `FileNotFound` doesn't even provide a way to indicate that the file that was missing was not the one that was passed to the function. The only available location to record that info is in the `IoError.detail`, but that's an unstructured string, presumably intended to display to the user, rather than something we can use to record this information. If I call `rmdir_recursive()` and get `FileNotFound` back, I'm certainly going to expect that means the directory didn't exist, and be quite surprised when it turns out to still exist.