Yeah, the Esri fillOpacity property just becomes an SVG property, and the SVG specification requires that it gets clamped to [0,1] before rendering.
In addition to computing the quartiles correctly, I also realized you should probably use (AREALAND+AREAWATER) rather than just AREALAND... in the above image the great lakes counties look suspiciously overemphasized. :)