The mistake there is a classical example of why (software) transactional memory is valuable. Double linked lists are trivial in single core execution, need PhD level understanding of everything in multicore execution and become trivial again in multicore execution with (S)TM.
Rust has troubles with STM because it lacks anything resembling effect system. Most probably, this will not be fixed.
may you share links to read or vote to understand better and push for?