I like that. I was thinking very much on those lines - having a callback interface as the primary access. The coding might be advanced for some beginners so I was thinking of wrapping that up with a simple interface where the user can provide a buffer, and we fill in the first X results.
E.g.
WiFiScanResult results[20];
WiFI.scan(results, 20);
for (int i=0; i<20; i++) {
if (results[i].security==UNSEC) {
// ...
}
}
But definitely the callback interface comes first.