I don't think contextual targeting (based on keywords) is any more primitive than, say, targeting by age, income, etc. It's just another way of defining an audience. It works for some topics better than it does for others. If you're a travel agent selling $1,000-a-day cruises on Croesus Cruise Line, it's probably a lot more cost-effective to have AdSense ads displayed on articles, reviews, etc. about Croesus Cruises than it is to buy an ad in CONDE NAST TRAVELER. But if you're Croesus Cruises and you want to market your worldwide cruise collection to upscale travelers who might not have considered a Croesus Cruise, targeting by demographic (e.g., by purchasing an ad in CONDE NAST TRAVELER or TRAVEL + LEISURE) may be a more useful approach.
The great thing about AdSense (or any online advertising product) is that it can be tested with a relatively small investment. In that respect, it's more like direct mail than conventional media advertising.
Like direct mail, AdSense and its rivals can co-exist with traditional media campaigns. There's no "either/or"--for example, a company like Dell could use display ads to sell its mainstream product lines and page-targeted text ads to sell peripherals, supplies, digital cameras, etc. And a hotel chain might use general advertising to build interest in Widgetco Hotels while using page-targeted text ads to unload excess inventory in Trieste, Tupelo, or Timbuktu.
On my own site, I've seen AdSense fare promotions for major airlines from time to time. Those airlines obviously spend most of their money in traditional media, but for unloading a highly perishable commodity (empty seats), AdSense is a useful tool.