Currently host lists are fully deduped in order to prevent unwanted duplicity when merging different host list sources. E.g. specifying a role containing host1 and at the same time also using a @hosts('host1') decorator would, without deduping, run twice on host1, which is not usually the desired effect.
However, this protective feature disables any wanted duplicity, i.e. running a task multiple times on the same server on purpose. (This has become especially important for some folks with the advent of parallelism.)
I see two solutions:
env.hosts = ['host1', 'host1', 'host1']
I don't see any serious downsides to going with the simpler approach. Users wanting this feature are more likely to be advanced enough that they know to search for and activate nondefault options; and they're also more likely to understand the tradeoff and/or not specify multiple sources simultaneously.
Docs, unused env var added in prep for #633
Implemented in 9ca78a7.
Changelog re #633