ViewModel は onCleared() を自分が破棄されるときに実行します。
public abstract class ViewModel {
    /**
     * This method will be called when this ViewModel is no longer used and will be destroyed.
     * It is useful when ViewModel observes some data and you need to clear this subscription to
     * prevent a leak of this ViewModel.
     */
    @SuppressWarnings("WeakerAccess")
    protected void onCleared() {
    }

👉 ViewModel の概要  |  Android デベロッパー  |  Android Developers 
ログを吐かせて、その瞬間を確認します。
初期化のタイミングと合わせて確認してみましょう。
@HiltViewModel
class HomeViewModel @Inject constructor() : ViewModel() {
  // ...
  init {
    Timber.d("## ${javaClass.simpleName} initialized.")
  }
  override fun onCleared() {
    Timber.d("## ${javaClass.simpleName} onCleared.")
  }
}
...
21077-21077/com.example.app D/HomeViewModel: ## HomeViewModel initialized.
...
21077-21077/com.example.app D/HomeViewModel: ## HomeViewModel onCleared.
...
なんでいまさらこんなことを!
👉 【Jetpack Compose】ViewModel を捨てて Repository を Composable に直結する 
👉 Compose を既存のアプリ アーキテクチャと統合する  |  Jetpack Compose  |  Android Developers 
 
		 
          