If I understand you correctly, you are saying that when you are given no data to select upon, instead of generating an error (since there is no natural sense of 'selecting' something which isn't there), you generate a spurious piece of data based on the default value and fail silently. 

While I agree that it would simplify the case of parsing streams of data which might contain empty arrays, it would do so by introducing fake data each time as though a meaningful select had really taken place. 

This sounds like a recipe for introducing bugs in code (by not warning about the misuse of select) and erroneous data (ie. data which has not actually been fed in or selected upon).