(See edit below.)
Intuitively what you say makes sense. However, I just ran a simulation in R based on census data (actual county sizes from [1]) and the result is that you do get by-county age differences of up to ~17 years just by chance. These bigger differences do not occur often but the assumptions I made in the simulation are fairly conservative and the true random variation could easily be bigger. So 20 years does not seem absurd.
[1] https://factfinder.census.gov/faces/tableservices/jsf/pages/...
In the spirit of open science, the code for the simulation:
library(tidyverse)
read_csv("co-est2016-alldata.csv") %>%
filter(SUMLEV=="050") %>%
select(county=CTYNAME, pop=POPESTIMATE2016) %>%
group_by(county) %>%
mutate(age = mean(rbinom(pop, 100, 0.7))) ->
d
range(d$age)
ggplot(d, aes(age)) + geom_histogram()
Running the simulation repeatedly yields maximal differences between counties between 16 and 19 years.
EDIT: False alarm. I incorrectly assumed that census data sets uses unique identifiers for counties and that introduced a bug in the simulation. After correcting it, the simulation shows that random variation indeed explains only very small differences in life expectancy of about one year. Corrected simulation code below:
read_csv("co-est2016-alldata.csv") %>%
filter(SUMLEV=="050") %>%
mutate(county_id = 1:n()) %>%
select(county_id, county=CTYNAME, pop=POPESTIMATE2016) %>%
group_by(county_id) %>%
mutate(age = mean(rbinom(pop[1], 100, 0.7))) %>%
ungroup -> d
range(d$age)
Life expectancy as a function of county population:
http://imgur.com/a/0LgGZ