In answer to (1). the TLM fifos do provide some extra methods, like can_get, can_put, and can_peek methods, but more importantly, they use the same API as the already-existing TLM standard used in SystemC. Remember, TLM is more than just the uni-directional API - it is also the bi-directional API and analysis interface. Also, a mailbox is technically not a class and cannot be extended and used polymorphically.
For (2), the ovm_sequence_item class adds two very important fields that do not exist in ovm_transaction: sequence_id and transaction_id. These properties are critical when you send a response item back through a sequencer.
I would strongly disagree that OVM 2.0 sequences are just the Cadence method. If you look at it as a "battle", then I would say that the Cadence API and terminology "won", but the Mentor implementation "won". In my opinion, the Cadence API was more complete, but the Mentor scenario implementation was far superior, cleaner, and more efficient.
In the end, the real winner is us: the user community, because the best parts of both methodologies were maintained and merged in an (almost) completely backward-compatible way. The developers in both companies did a fantastic job with this release.