In case anyone still cares about synchronous calls
My main use case for this is in a before unload event. If you need to do something before the page is unloaded, it must be done synchronously. Once the page is unloaded, all JavaScript processing on that page is stopped. Therefore, if you start an AJAX request in the beforeunload handler, it is most likely that it will not get run before the browser window is destroyed.
In fact, I think this is one of the main reasons that the XMLHttpRequest specification supports a synchronous flag.