The request handler does the following
<?php
// Invoke the operation on the resource plugin.
try {
$response = $resource->{$method}($id, $unserialized, $request);
}
?>
This means that core rest can't deal with relationships. Most rest calls can be reworked into N step but certain cases can not. I came across this issue when starting to look at upgrading the services module and specfically variable get which of course become config get in d8. The signature for this should be endpath/config/name and this is not supported, of course this may be out of scope bu ideally $id should become N.