If you modify the rule, you can make it so that if it doesn't find an intersecting polygon in the first FC, it tries the second Polygon FC:
// load the polygons
var polygons = FeaturesetByName($datastore, "PolygonFeatureclass")
// get the polygon that intersects the current point
var i_polygon = First(Intersects(polygons, $feature))
// if no polygon is intersecting, try the second polygon fc
if(i_polygon == null) {
var polygons = FeaturesetByName($datastore, "PolygonFeatureclass_2")
var i_polygon = First(Intersects(polygons, $feature))
// if there is no0 intersecting polygon here, too, return null
if(i_polygon == null) { return null }
}
// return the name of the Polygon
return i_polygon.Name
Is that what you're trying to do?
Also, if this is a task you have to do often, you might want to consider making this expression into an Attribute Rule for each of the point fcs. Attribute Rules can be executed when a feature is inserted or edited. This way, the name would be updated automatically every time you edit a point.
Have a great day!
Johannes