I'm not sure I understand what inbound and outbound means in this context. Basically, if you have a Realm with a single class
Foo and a single property
Bar of type
string. Your app happily syncs with ROS. A week later, you create a new version of the app, where
Bar is now
int. If your new version tries to open the "old" Realm, it'll get an error and ROS will terminate the connection. So all old versions of your app will still work, but your new version will not. Hopefully you'll notice that during development though. However, if your new app creates the Realm first and an older version of the app tries to connect, the old version will fail (as ROS handles them on a first come-first serve basis). But in no scenario would an attempted destructive change result in an app that has previously worked to stop working.
I'm not familiar with the Swift SDK and what is the reason for the error you're getting there, but removing a property is not a destructive change - the property still exists on ROS and all clients that have that property in their schema. For the client that "removed" the property, it's just hidden. You can think of it as the opposite of adding a property. Again, if the first version of your app doesn't have the property
Bar and the second version of your app adds it, for everyone involved, that's equivalent to first version having the property and second version removing it (again, ROS isn't aware or cares about app versions).