I've been playing the hell out of Vesperia (still), so I haven't really taken much time to look at it further. As far as tag lookups go, as long as you rate limit them it shouldn't be too too bad. I installed a plugin to delay loading of tabs just because I have a serious case of tabitis (1-200+, even without boorus), but even before that I had a couple dozen booru tabs loading simultaneously and didn't get locked out. Granted, that was fairly sporadic behavior, and I wouldn't recommend hammering the server on purpose.
I figure a few more days and I'll either get seriously tired of Vesperia, or "complete" the game. God help me* if Minecraft gets patched again, though.
*Poorly chosen figure of speech. Could be Thor, Zeus, or Haruhi, though.
/Searches: I actually meant "will you be handling the searches along with/as part of the metadata aspect?"
/Gelbooru API: Yes. They only provide documentation for an XML based API. Pulling tags off of it isn't too bad, and I actually prefer XML queries anyway, since they could be directly cached client side for processing. Every major language has a package to handle XML parsing, so it's not really a big deal to get the information. In any case, their search functionality is down at the moment.
/Modular: I'm generally in favor of modular designs. It allows me to just swap things out or change things without touching program code. The best I could do with my ability though is configuration files describing how to get information, actual coding for plugin functionality is beyond my level of experience. Still, I suspect a simple XML file or similar detailing the fields and query format would more than suffice.
/Updating: IMO the easiest solution would probably be to store some program specific metadata in a database, including per image information on updates, et cetera. From there you could offer the user the option of automatically updating tags on older images, and customize things like how often, whether to stop after a set number of non-updates, et cetera. I'd probably set the default to "don't update", since it could get out of hand with larger libraries if you tried to update 10k+ images every five days... all at the same time, no less. The user can always request a tag update anyway.
As you say, though, it's still way too early to go into too much depth on that, since the basic framework would need to be in place first. My plan is to just start small, and set up a temporary GUI to test small searches and finding tags for single images and small sets. Once that works, I'll probably move on to tracking local files and matching them to booru queries, with dummy calls to update tag information.