у меня сигнатура fn foo<'a>(this: Ref<'a, T>) -> Ref<'a, T>
RefCell внутри RefCell'а? Ну, например, то, что после этого на внешнем RefCell'е можно сделать borrow_mut и mem::replace внутренний RefCell, что приведёт к UB, так как у нас есть shared reference на содержимое внутреннего RefCell