Another possibility is that 10.3 sees the index-only scan as too expensive because it thinks most of the table isn't all-visible. Comparing pg_class.relallvisible values might be informative.
regards, tom lane
I'm happy to try to dig into this one more, however, I'm not familiar with this value. What should I be looking for here?