Different results of callAsync and applyAsync

Hi. Please consider a simple async method. Its stub returns different value than the server execution.

Meteor.methods({
    async test() {
        if (Meteor.isServer) {
            return false;
        } else {
            return true;
        }
    }
});

Then, in client code, I call this method with callAsync and applyAsync.

async callTheTest() {
      const resultCall = await Meteor.callAsync('test');
      const resultApply = await Meteor.applyAsync('test');
      console.log(resultCall, resultApply); // false, true
}

The first seems to resolve correctly to the server value, but the latter resolves immediately to the stub value and ignores the fact that the server later responded differently. Why?

Meteor v2.8.1.