Very good points.
Cleary defined bounded contexts are the way to go and also having a clear distinction between internally and externally visible domain events.
Other tricky points to get right how to distribute events and the relationship order (as in stream ordered, totally ordered, entity ordered) based on the scalability and "correctness" requirement. For instance in algo-trading is not uncommon to have totally ordered events throughout the system.