Anyone know if the first con listed has improved with the introduction of non-lexical lifetimes?
Data structures exercises will be a different story.
Of course you still need to think about lifetimes, and sometimes warp your program around them. However, it is now much less common for that thinking to arrive at "The compiler is wrong; how can I convince it of that?"