The first step is to convert the value to a primitive value, hinting towards a number. If the primitive is not a number, then we reach step 4, asking us to jump to ToBigInt(value), the first step of which is to then convert this value to a primitive again. See /abstract-operations.html#sec-tobigint.
The problem is that JSC, SpiderMonkey, and V8 all are incompliant here in that they replace step 4 of BigInt(value) with ToBigInt(prim), and skip the first step of ToBigInt(argument).
Rather than create bug reports in current implementations, how about we re-specify this here in ECMAScript?
I think the point made is that the spec requires converting the initial value to a primitive twice if the first does not result in a number, which is observable, but that none of the common implementations seem to actually do. This sounds like a web reality the author suggest should be fixed by updating the spec.