The code needs to be very, very fast, and the trade-off is memory for speed. The daemon can take up to 10 minutes to load all of the data necessary to make the calculations. The datafeed is very high volume and the calculations are non-trivial. One of those few applications that really *does* need to be extremely efficient.
I'm supposing here, but I think the HTTP connection really means "OCX/ActiveX/whateverXitistoday used as a web service in IIS and .NET". I don't have all the details, however; the information was second hand. This is just a suspicion. Many of the same disadvantages apply if it's "C++ through JNI in a Java web service".
WRT your question about JNI, that was one of the alternatives I had thought of. If we're wrapping the C++ stuff in a framework, why not use a Java appserver as the framework so it can run on more than just Windows.
WRT synchronous responses and JMS, one advantage is that one or both ends can go down and the messages are saved. We get that for free.