Can I skip canister versions, when doing upgrade?

Suppose there were versions of a canister WASM W1W2…Wn. Suppose also, then in this chain only Wp and Wq (p<q) have attached migration function.

Can I be sure that, instead of calling all the upgrades W1→W2, W2→W3, …, W(n-1)→Wn, it’s enough to call only W(p-1)→Wp, W(q-1)→Wq, and Wq→Wn to finish the upgrade?

I think, yes, I can shorten, because accordingly the specs migration functions support subtyping. But I am asking to be sure.

I tried to ask the forum’s AI, but its answer is ambiguous and unconvincing.

Nevermind, I found an answer by myself:

Suppose W1→W2 (without a migration function) adds a new stable variable v.

Then W2→W3 may have a migration function that uses v. Therefore, W1→W2 cannot be skipped.

Therefore, I see that I can’t be sure that migration works well, if I skip any step.