True. It is possible though for a language to avoid these iteration constructs as if they are needless plumbing as well. Consider the elegant type system of the XQuery language:
In XQuery, the root type is a flattened sequence. Flattened means not just that [1, [2, 3]] is flattened to [1, 2, 3], but also the a single object 42 is equivalent to a sequence of one object [42].
This means that if I write:
declare function local:prefixName($name)
{
fn:concat("prefix-", $name)
}
I can invoke it with a single name or a sequence of names without any explicit iteration.
It has drawbacks but using XQuery certainly highlights how much code we normally waste dealing with "things" and "sequences of things" separately.
(Than again working with XQuery also highlights how much code one can waste dealing with XML namespaces :)