I think the bottom line is if you've other AWS components and are willing to be less hands-on about tuning with ease of setup and scalability, Kinesis is your best option. Else go with Kafka
AFAIK that's the only we use Kinesis over something like Kafka or Spark (much to the chagrin of of our data team). We are planning on moving to Kafka I believe but in the meantime while the Data folks sort all that out we are using Kinesis.
I mean you can ask, why use EC2 instead of your own machine at the local data-center?
Managed services typically already have taken design considerations for failover, DR, and scaling, so you don't have to.
I think Kinesis is an excellent service, but if you have an existing stack or preference on OpenSource solutions, it's good to have choice.
There's a lot of signalling/data at the back when AWS implements it, which you will never have access to.
With kafka you can reprocess data just creating a different consumer group. You pay for instances.
I guess in kinesis you need to move data from kinsesis to s3 and back to kinsesis to reprocess it, and it wil surely have a cost.