It’s not true – there’s no harm in clearing a timeout after it has finished, but it’s not necessary.
Per the specification:
If handle does not identify an entry in the list of active timers of the WindowOrWorkerGlobalScope object on which [clearTimeout] was invoked, the method does nothing.
In other words, it’s a no-op; nothing happens, and no error will be thrown.