Tennessee is an intriguing place name option that isn't seen too often—the most famous example is legendary playwright Tennessee Williams (and that was his nom de plume, not his given name). Given Reese's line of work and her childhood growing up in Tennessee, either could have been inspiration for her new son's name choice.
James has become one of the most popular middle names in the U.S.—it's a classic Anglo-Saxon name that means "supplanter." And it's a nice, short choice that works well with the multi-syllable first name.
In all, the name flows together nicely, and she's created a great mix of long and short names. Of course, Tennessee is so long that it's begging for a nickname—and Ten or Tenny are the most common choices (though the baby could also be called T.J. for short—which would probably my choice of nickname).
I think the name fits in beautifully with the rest of her family's names—especially the offbeat choice of Deacon for her other son.
What do you think of Reese Witherspoon's baby name choice? Would you name your baby after a state?