mybatis の foreach は、ネスト(入れ子)を書けるか?

Yes. 書けます。

mybatis foreach で、1つの foreach で良く使うのは、バルクインサートを書く時、、

INSERT INTO items  ( id, name. length
) VALUES 
<foreach collection="list" item="e" separator=",">
    ( #{e.id}, #{e.name}, #{e.length} )
</foreach>

バルクインサートでなお且つ、インサート文で指定するカラムも可変だった場合、
これは、foreach の中で、もう一度 foraech にする必要がある。

<insert id="insert" parameterType="map">
INSERT INTO ${scheme}.${tablename}
   <foreach collection="columns" item="cname" open="(" close=")" separator=",">
     ${cname}
   </foreach>
VALUES
   <foreach collection="values" item="vlist" separator=",">
      <foreach collection="vlist" item="v" open="(" close=")" separator=",">
        #{v}
      </foreach>
   </foreach>
</insert>

map に渡す values は、List<List<Object>> という形でデータを渡すことになる。