fix non-lazy calls not executed before `first` & `last`

Same bug as before, but with `first` & `last` scenario:

```
_([1, 2, 3]).map().xor([4]).last(); // returns '3', while it should '4'
```

Sure, I'll add parentheses.

I thought about `noQueue`, but it felt kinda weird, so went for `!hasQueue`. No problem to change though.