Answer
The granted/ungranted Actions setting for a specific process step only actually restricts COMPLETING or finalizing that specific step's transaction, not entering or saving data for it in the first place — this is why a user can still enter and save data for an 'ungranted' step even though they can't complete it. To fully prevent users from even seeing or accessing the other steps' data-entry sections at all, combine the Actions-based permission restriction with hiding those specific steps' sections directly through the user's, or a shared, Base Profile — this combination, Actions-grant restricting completion, plus Base-Profile-driven hiding of the actual entry sections, achieves the intended full restriction that neither mechanism alone provides.