Yes and that's the whole point!
The borrow checker ensures that you either do it right or you find another way that is safe.
For example it may be totally fine to help allocate a result, not all programs need to be optimized to the bone. Just return a boxed value. If you need to share it, wrap it in an Rc or Arc.
One problem I see with it is that rust chooses to make the most efficient way of programming also the most "simple looking", and so it lines up incentives in such a way that people will unnecessarily try to avoid using an extra Arc just because it looks like unnecessary clutter.
When you learn to embrace your boxing you'll learn that the borrow checker is not your enemy.