In diesem Falle ja:
a) du gibst den Cursor zurück (with return)
b) du gibst ein Array als Resultset zurück

Da der Cursor ein Vorwärtscursor ist und komplett durch das Array gelesen ist, liefert das 1. Resultset keine Daten mehr (EOF).

Was machst du bei mehr als 5 Zeilen (x Rows)?
Wozu eigentlich das Ganze?