С таким можно на YT идти. Поведение весьма неожиданное.
если считать, что деструкторы - сахар для component1(), ..., то можно написать такой код
with(Any() to emptySet<B>) {
val et1: Any = component1()
val b: Set<A> = component2() // Set of ??? из-за стирания типов
}