I've been playing around a bit with AWS Cloudfront, and this question came up for me: "What is the difference between OAI vs IAM 'users' on AWS"? What I'm really asking here is: "Why does OAI need to exist, and why can't IAM be used instead?"
I'm sure there must be some major difference and reason for this, but having two different types of 'user' really threw me when trying to debug an issue: ie that updating an S3 bucket policy automatically from Cloudfront meant that the OAI ID was put into the Policy, and I got it mixed up with the Cloudfront ID because they look so similar!