> Although the language itself doesn't guarantee that the value is not used again after a move, good static analyzers will provide a warning in that case, so it can still be safely used.
Not soundly. Such static analysis can be trivially defeated using e.g. virtual methods.