The stdlib currently has implementations of AsRef<Path> for 10 types. One is Path and in the remaining 9 only one (PathBuf) implements Deref<Target=Path>.
Another tradeoff is that Deref can only be implemented once, but AsRef can be implemented multiple times for the same type. So in the general case the compiler won't know which .as_ref() to call.