The 'more you 'restrict' ITA for flexible (/time consuming) requests, the better the results are.
ITA like any system has a cut off time, if your querry is too complex and takes longer than that cut off time, ITA will only show what it found up to this point. So thats why a muli city search with 10+ different city codes won't get you the same low price result as looking by only 2 cities at once. And its the same with restricting airlines, if you restrict it to only 1 airline, ITA has more time to search for fares and hence could find something cheaper.
One would say its a pity that the cut off time is 'so short', but its always a trade off, you could have a search run for a minute and get the best result, but users don't want to wait a full minute.
AND it would many more ressources = more money.
ITA is doing a very good job here already, GDS like Amadeus are less advanced, when you run AMA MasterPricer (the tool to find the lowest price for a given date(frame)) and you search for flights from /to a city code like WAS that has several airports already, AMA is at its limitation since its 3 airports (BWI,IAD,DCA) and can't even find the lowest price then already.
AMA dev support said its because there are too many possible combinations and fares and they can't run all possibilities so trust me when I say this, ITA is the best availability and pricing engine there is on the market and is much better than any GDS and I would kill to have ITA as my travel agency a&p engine instead of the GDS one.