What do you mean by "automatic degradation of user roles"? The plugin has to store the information somewhere, and that somewhere is the database. You say "deep down," but that means nothing. It will just be in a meta field somewhere that you will find by using phpMyAdmin.
When you have found the relevant metadata, you just write a function that is triggered when the metadata is created and then either copies it or places other values into metadata fields that s2Member can recognize. Even with my rudimentary PHP skills, that's easy.
So then you can have, for example, an s2Member EOT, which can be used to trigger emails and relegation to level 0 or whatever as normal in s2Member.
With conditional shortcodes, you could also then make available billing forms for renewals, etc.
Ha, ha! If your use for s2Member is just to create recurrent subscriptions to roles, then you're right. But that's not how I or many others use s2Member. Indeed, if that is really all you need, there would seem to be no particular need for you to use s2Member in the first place.
What matters to users like me are s2Member's highly sophisticated means of protecting and delivering content that no other plugin can get near. Payment is the least of what I want it for. (I actually suspect that my views are rather similar to Jason's, and explain why he has never been that keen on writing integrations with other payment processors.)