I think the answer is in the description of what ContainsOnly() does:
It’s searching for something … and you can’t search an empty list, so its false from the start. It doesn’t matter if you do:
List().ContainsOnly(List("foo")) - this isn’t true because an empty list doesn’t have it
List().ContainsOnly(List()) - this isn’t true either because an empty list can’t have anything in it
Kind of like how zero can be true:
