But in my view of sense, that almost means the same as must. Should or must, they both imply that if the class has virtual functions it needs a virtual destructor. Perhaps should is too strong a word?
"Must" is stronger than "should". Stroustrup states in his answer to the FAQ Why are destructors not virtual by default?: "So when should I declare a destructor virtual? Whenever the class has at least one virtual function."

It sounded like it's a rule you need to follow.
It is a corollary of the rule "do not publicly inherit from standard containers". It is not a rule specified by the standard, but one specified by best practice.