Box и Rc размещают полученные данные в куче.
Но что насчёт Cell, RefCell и OnceCell?
Я думаю, что если значение объявлено на стеке, то оно и останется на стеке при создании экземпляра одного из *Cell типа, так ли это?
Cell<T> has the same memory layout and caveats as UnsafeCell<T>. In particular, this means that Cell<T>has the same in-memory representation as its inner type T.
У остальных нет никаких обязательств о memory representation, но они тоже ничего в куче не выделяют.