De extra kosten moeten te wijten zijn aan het feit dat u de set-return-functie gebruikt in de SELECT clausule in plaats van in de FROM clausule.
Merk op dat de verwerking van set-return-functies in de SELECT clausule gewijzigd in PostgreSQL v10, dus uw versie kan van invloed zijn op dit gedrag.