Why is this an issue?

Having all branches of a when or if chain with the same implementation indicates a problem.

In the following code:

if (b == 0) {  // Noncompliant
     doOneMoreThing()
} else {
     doOneMoreThing()
}

when (i) {  // Noncompliant
    1 -> doSomething()
    2 -> doSomething()
    3 -> doSomething()
    else -> doSomething()
}

Either there is a copy-paste error that needs fixing or an unnecessary when or if chain that needs removing.

Exceptions

This rule does not apply to if chains without else, nor to when without an else clause.

if (b == 0) {
    doOneMoreThing()
} else if (b == 1) {
    doOneMoreThing()
}