Awesome analysis. It sounds like accusations of firmware nerfing doesn't fit with the data. It sounds like they also shouldn't set cleanjobs=true to avoid empty blocks.
The explanation for ocean's high empty block rate is simple. They are sending empty blocks followed by a replacement (full) template with cleanjobs=false. However, some models of bitcoin Application Specific Integrated Circuits (ASICs) do not switch to this new work quickly, with cleanjobs=false. According to ocean's own data, some miners "will continue submitting the older work until they exhausted their search space which could be anywhere from 1 second up to a minute". This decision by the pool combined with the use of particular ASICs is likely the cause of their high empty block rate.
cleanjobs=true
to avoid empty blocks.