гарантируется ли, что единственной вещью, которая когда-либо будет вызываться в RHS, будет деструктор?
Нет. Правильно вызывать функции-члены перемещенного объекта. Стандарт не гарантирует, что программист этого не сделает.
Как разработчик класса, вы можете решить, что некоторые функции-члены не должны вызываться для перемещенного объекта, и, таким образом, можно избежать, например, выделения памяти. Или вы можете решить не иметь такого требования. В общем случае наличие предварительных условий может обеспечить более эффективную реализацию, а отсутствие предварительных условий делает класс более простым в использовании.
Как пользователь класса, вы несете ответственность за выполнение предварительных условий функций-членов, которые вы вызываете (или доступа к элементу). Если предварительным условием функции является то, что класс не находится в перемещенном состоянии, не нарушайте это предварительное условие.
Как правило, это хороший дизайн, позволяющий вызывать оператор присваивания для перемещенного объекта. Это то, что делают все (назначаемые) классы стандартной библиотеки.
Вкратце: стандарт не дает такой гарантии, но вы можете наложить такое требование на пользователя класса. Просто убедитесь, что это хорошо задокументировано.