Reads the first matching row via key routing, falling back to a global
all-shards scan when the routed read misses.
The routed read stays the fast path. The fallback exists for the window
where a primary-key -> shard mapping has not been created yet (a brand-new
key, an eventually-consistent KV, or a row written directly to a shard), so
a single lookup still resolves without the caller wiring their own fanout.
Reads the first matching row via key routing, falling back to a global all-shards scan when the routed read misses.
The routed read stays the fast path. The fallback exists for the window where a primary-key -> shard mapping has not been created yet (a brand-new key, an eventually-consistent KV, or a row written directly to a shard), so a single lookup still resolves without the caller wiring their own fanout.