Why Kotlin doesn't allow use-site variance with the interface

It doesn’t (yet). Your example of where T : IA, T : A1 is an intersection type, isn’t it?