It's never transmute when it comes to indirection. You can transmute values, but transmuting is not transitive via references or pointers. If you have T and U such that transmuting from T to U is sound, then that does not imply that transmuting &T to &U or *const T to *const U or Rc<T> to Rc<U> would also be sound. And even if it were sound, it might not do what you think it should.
Casting between pointers and then dereferencing them leads to the transmuting of the pointed value, not that of the pointer, and vice versa. Please, do not use transmute() for converting between pointer or reference types.
Would it be possible to provide a concrete example of how things would break? (Intuitively, what you say sounds reasonable, but having a concrete example to anchor all this would be helpful in understanding how things go bad.)