I also stumbled across this option today. Either Microsoft changed something in the last three weeks, or I am experiencing other behavior.
For me it does work like I expect and that's different behavior than you experienced.
It does hide the option when you create new records, or try to change an option, other than the hidden option, on an existing record. So this hides it for future records.
And when the hidden option was selected on a older record, and you open that record, you do see the old value. This leaves old data intact. You can decide off course to "migrate" to another option set value. However, if you do that for all records, you can just as well delete the option value and not hide it.
You can also still see the old value in views and can export it.
This seems to work fine to hide options completely.
Like Daivat mentions, to hide options conditionally, JavaScript is still needed.
In screenshots:
Record with old option selected, before hiding:
That same record after hiding. Greyed out. I can switch to any other option, but cannot switch back to the greyed-out option.
After saving and refreshing, the old hidden option is also no longer visible:
So for me that works as I expect: hide old options, but keep those options on old records for history purposes.
Cheers,
Toby