From PowerShell/PowerShell#3061 (comment):
We discussed possibly making all automatic variables functionally read only, however, agreed that in many cases like $PWD someone could be using it already without problem as they didn't Set-Location so $PWD isn't overwritten. So other than $_, $PSItem, and $Input, we decided to error on the side of limiting the breaking change to the most common cases.
Therefore it should be noted in the documentation that other conceptually read-only variables, even though they can be written to - for backward compatibility - shouldn't be.
In PSv6, hopefully, a PSScriptAnalyzer rule will warn about doing so, but there's nothing in the engine that will enforce this.
Version(s) of document impacted