Yes. We have taken this approach with our managed package when back-porting features to patches that added new top-level classes in our master branch. Obviously there are limits to what can appear in an inner class compared with a top-level one, but we have avoided such difficulties with minor refactoring.
PATCH seems no longer supported.
A work around is a POST method with a parameter :
So It becomes :
In the Body :
Please, upvote is it works for you.
Here is a sample of a record update:
PATCH /services/data/v47.0/sobjects/Account/001XXXXXXXXXXXX HTTP/1.1
Authorization: Bearer 00DXXXXXXXX
"BillingCity" : "San Francisco"