Запросы RemoteObject помещаются в очередь до следующего кадра выполнения, а затем отправляются через тот же HTTP-запрос, т.е. несколько операций над одним и тем же запросом. Поэтому, когда вы звоните: service1.method(1);service2.method(2)
Обе операции выполняются по одному и тому же HTTP-запросу. Первый приводит к тому, что обработка потока этого запроса переходит в спящий режим, в результате чего вторая операция не вызывается, пока поток не возобновится.
Единственный известный мне способ избежать этого - убедиться, что каждая операция выполняется по собственному HTTP-запросу и, таким образом, получает свой собственный поток. Но помните, что вы получаете только 2 одновременных HTTP-запроса в большинстве браузеров. Поэтому, если вы делаете более двух запросов одновременно, вы все равно будете заблокированы и не будете параллельны после двух одновременных операций.
Простой способ получить запросы на следующий кадр - использовать callLater, например:
service1.method(1);
callLater(function():void { service2.method(2) });
Я полагаю, что это приведет к тому, что первая операция произойдет в следующем кадре, а вторая операция произойдет в следующем кадре. Возможно, вам придется обернуть другой callLater вокруг callLater, чтобы убедиться, что он попадает в кадр после первой операции.