I agree the role system around Readers and Authors is confusing. It helps to think of them as different kinds of roles from the other roles in the system, and some of the opaque behaviour is intended to shield occasional users of a journal from some of the complexities of the whole system.
The Reader role is the basic role which we try to grant automatically. However, because user accounts are shared across the system, a user registering with one journal needs to be assigned the Reader role in that journal but not others. If a user registers at the site-wide registration form, they’ll need to opt into the Reader role for the journals they want.
The Author role is something that we try to grant automatically during submission. However, the flexibility of the role system means that you can have several authorial roles, and these can be set up differently. You might want a general Author role that users can self-assign during submission. But you may also have translator or other authorial roles which you don’t want users to opt into. This flexibility can lead to situations like you describe, so for the moment it’s important to make sure you’ve got at least one authorial role which can be self-assigned.
Whenever possible, we try to prevent the user from having to self-assign when we can do it for them. This is why you sometimes won’t see the opt-in. For example, if there is only one author role, we can opt them into this during submission (with the appropriate GDPR privacy consent declaration).