Yes. Because there is no assurances as to what HIGH and LOW really are and the code should not make any assumptions about what type they are or their values.
While most implementations define HIGH as 1 and LOW as 0, it is not required.
So to ensure that the code is portable and will always work/compile across all Arduino core implementations including past and future versions, this code makes no assumptions about the values or type for HIGH and LOW, which is the safest and most reliable thing to do.
To assume a specific implementation is abusing the API since there is no assurances as to what / how HIGH and LOW are defined / declared.
They are never defined in the Arduino documentation.
I believe at one point Arduino.cc was going to change HIGH and LOW from simple defines to specific type or enum. In that case, using something like
ledState = !ledState;
would break since it would not compile.
Treating HIGH and LOW as 1/0 or true/false as been discussed many times on the forum. While it typically works, it is abusing the API and is not guaranteed to work and should be avoided.