I managed to device a query for the watchlist that brought in both pages and their talk pages (or, if you are watching only the talk page, the associated subject page) from the cur_id, thanks to the magic of bitwise or. Switching to the table format cuts generation of my 1000-entry watchlist (with default limit of 125) almost in half, from ~9-10 seconds to ~5-6. Hurrah!
One slight bug: if you're watching both a page *and* its talk page, they show up twice in the watchlist.
I have so far installed it only on the English wiki. If anyone updates User.php, Skin.php, SpecialWatchlist.php, SpecialRecentchanges.php, SpecialRecentchangeslinked.php on the others before I get to it, put in and run "upgradeWatchlist.php" out of the maintenance/ subdirectory first; this will generate the table from the current user-table list.
-- brion vibber (brion @ pobox.com)
wikitech-l@lists.wikimedia.org