To the question of the OP, what was the effective visibility radius, there is no straightforward answer: it depends of where you are, what was the weather, what is the training of the pilots to detect and identify ships, etc...
But speaking specifically of Midway's battle, there is an answer:
East of the fighting zone, the weather was : Partly cloudy. Ceiling unlimited in Eastern portion lowering to 1000 feet near warm front. Visibility 6-12 miles. Wind SE 12 knots. Average flying conditions.
North West of the zone, this was: Overcast with rain and showers. Ceiling 600-1000 feet, visibility 2-6 miles. Moderate SW winds ahead of fronts, gentle NW behind cold front. Undesirable flying conditions.
South of the zone, weather was: Partly cloudy. Ceiling mostly unlimited. Visibility 12-20 miles. Gentle Easterly winds. Good flying conditions.
So: Visibility was a little better above Japanese fleet, which did search for more cloudy zones after the first air fights. American aircraft carriers, on the other hand, were truly hidden under clouds and rain. This is a factor for American aircrafts having been able to see the Japanese fleet, and not the contrary. But there are tactical factors as well:
- The Japanese fleet was already partly localized by the attack of aircrafts from Midway: Americans had better hindsights on where to concentrate their recon flights than Japanese
- Americans did locate lately the Japanese fleet, and lost entire squadrons than ran out of fuel