I think there might be a performance regression here in the case where you're not filtering by area.  Doing several queries (300 or so?), one for each area, might be slower than doing one query ignoring the area parameter.