In 2014, @ori optimised the way user options are loaded. They were already embedded in page views, but were somewhat wasteful because most options are set to their default values (and in case of logged-out users, all options are the defaults) and these are re-distributed on every page view.
Commit 1c17347580 changed this by splitting the options module in user.options and user.defaults. Where user.options depends on user.defaults and the latter is not embedded, but requested on-demand and highly cacheable client-side.
The result was a significant decrease in HTML payload size by omitting the default options from the response. Currently looks like this:
mw.loader.state({ .. "user.options": "loading", .. }); .. mw.loader.implement("user.options@0bhc5ha",function($,jQuery,require,module){mw.user.options.set([]);})
In 2016, commits 80e5b160, a464d1d41d6 (T92459, T87871) and related ones introduced tracking of initial module state server-side. This is already used to skip requests for user and site wiki modules that are known to be "empty", as well as to initialise the state of style modules to "ready".
We can leverage this to omit mw.loader.implement() and options.set([]); entirely by default and just consider its state to be ready.