It seems to me the biggest factor in success of a brewpub is location, both having a high-traffic location in the town, and being in a town that cares about good food.
Good beer and good food are only appreciated in certain geographical pockets. Growing up in Colorado, I took good food and good beer for granted. Even the smallish/hickish town I grew up in (Fruita CO, FWIW) had a couple of Thai restaurants within driving distance. Being raised in a culture with an above-average appreciation for food and drink really skewed my perception of how much "average" people care about the quality of what they consume.
Living in Missouri, the situation is completely different. The closest town to me has a population of 14k, and probably 20 fast food restaurants. There are a few locally-owned restaurants I've found to be passable, one that's good but never has any customers, and all the rest are aggressively bad, yet very busy. The beer situation is similar. With a few exceptions, mostly in St. Louis and KC, you can't get good beer in restaurants here. There are a few small outfits trying to change things, but they've only started in the last couple of years, and who knows if they'll be successful or not.
Even if you make the best beer and best food, if your customers don't want that, you won't stay in business long.