You could do this with some effort. Here's one approach: Your external program starts LR as a "server" that accepts requests from the external program. Each request would contain the JPEG's filename and the develop settings or presets to be applied. The plugin imports that filename into the LR catalog, applies the settings/presets, and exports the result as a JPEG to some designated folder. It then sends a reply to the request indicating success or failure and the full pathname of the exported JPEG.
You have to write LR plugins in Lua. If you haven't already, download the LR SDK and read the Lightroom SDK Programmers Guide. Find a tutorial on Lua and read it pretty carefully.
The LR SDK doesn't provide very good mechanisms for interprocess communication, but it can be done (as long as you're not embarrassed by gross but reasonably efficient hacks). See my post here and this blog entry.
One little piece of grot: The SDK doesn't provide any methods for a plugin to remove a file from the catalog. So over time the catalog will get larger and larger. It could grow to hundreds of thousands of cataloged files without impacting performance, though it would consume gigabytes of disk space at that point. Before your external program starts up LR, it could delete the existing catalog and copy a fresh, empty one into place.
John - once again, thank you for your reply. Very disappointing that Adobe would make the LR SDK entirely different from the PS SDK. And why such an arcane language?
Your description of the task at hand is perfectly clear. And thank you for the resources. I will dive in, but will likely be pestering you again.
And why such an arcane language?
The UI portions of LR are all implemented in Lua -- given that, it makes sense to use Lua as the SDK language. I don't know much why the original team picked Lua.
The Lua question was rhetorical, but thanks for the insight. Just bellyaching. You've been very helpful.