I think this misses the point. `times` is "better" than `for` because it's declarative, reads like English, etc. Which of course are opinions, but the implementation details (messaging passing or not) are irrelevant.
Example: Swift and Kotlin can do `Int#times` and don't need message passing to get it done.