Fog was once implemented like this: distance fog by greggman · Pull Request #14633 · mrdoob/three.js · GitHub
But this change had to be reverted because of issues on certain mobile devices: Reverted distance fog. See #14736 and #14786. · mrdoob/three.js@63f6d20 · GitHub
After a year another PR tried to implement the feature: Fix fog to use view distance by supereggbert · Pull Request #17316 · mrdoob/three.js · GitHub