No, I think the article is right. When a value goes out of scope, its drop method is called, which for Box values deallocates it.
The trick is that if it is (possibly) returned from a function, it is moved instead of dropped.
It's also important to distinguish Box from Rc. Both are heap values but have very different behavior.