When using descriptors without a wildcard I think is error prone to allow passing any non hardened index and returning the descriptor itself.
In a downstream logic we would not expect this to work
// ...
let a = descriptor.at_derivation_index(1000).unwrap().address(network).unwrap();
let b = descriptor.at_derivation_index(0).unwrap().address(network).unwrap();
assert_eq!(a,b);