Well they don’t require a screen_name but they are optional and can be used instead of ID’s in most API calls, this is why I choose to use them other than IDs (I would still have the hassle of getting screen_names for IDs anyway). Screen_name’s are more useful to use in an application for the user as users have no way of making sense of ID number as they can with a screen_name. Thanks for pointing out about users changing the screen_name must remember that and account for it.
There are 4 basic bits of information required of a user, would be nice to have a way of getting this basic information
[[id][screen_name][display name][name][profile_image_url], … ]
also would be nice to mention which list the user belongs to as well