Is it possible to recursively expand all on reverse predicates?

Yes, like this

query {
    GetCityLocation(func: eq(City, "someCity")) @recurse {
        <~predicate1>
        <~predicate2>
        <~predicate3>
        <~predicate4>
    }
}

About expand all, not possible. As reverse edges aren’t part of the schema.