For clarity, this only impacts integrations into Maximo. One of the most common out of the box examples is the STATUS attribute on various objects. You don't want a user to set the record's status directly. Maximo will see that status is provided and invoke the proper changeStatus method to evalute the record (is the status change allowed, does the user have permission, create the history record, etc.).
An example of when you might choose to add a new restricted attribute is on an autonumber field (like WONUM). Integrations can typically set WONUM, but if you want to force it to be autonumbered (and not allow the integration to provide that value) you can mark it as restricted and then Maximo will not use the user's provided value and instead autonumber the record. Maximo by default will NOT autonumber the record via integration unless the attribute is restricted.
If you do your own manual processing (such as an inbound automation script) you can access what was provided for the attribute even though it's not set on the record itself. This would allow you to do your own processing if you have additional logic you need to execute. For example, if it's coming from a third party system and it sends it in as WONUM but you have a separate attribute you want to store it on you can.
------------------------------
Steven Shull
------------------------------