Affine types, variance, higher-rank trait bounds, phantom data, MaybeUninit, and the whole macro and proc-macro systems are some examples of concepts that I found to be challenging when learning Rust.
Dyn-safety is another but I had encountered that previously in Swift.
Dyn-safety is another but I had encountered that previously in Swift.