Optional implies that user do something very intentional to disable JS.
But there are some cases where things go south without user direct intervention. Just to name a few:
- some edge bug that will render your whole site as a gorgeous white page - some browser extension that mess up with a site - some network configuration/condition that prevent JS loading correctly (think of a broken DNS)