You aren't really arguing that AsicBoost itself is necessary. You are arguing that a level playing field is necessary.
Yes. But not for matters of "fairness", but rather for matters of the inherent cryptographic security requirements (which are very bad !) of PoW. PoW security is based upon the attacker needing to spend at least as much economical effort than the "good guy" (in PoW crypto, the good guy is by definition, the miner that ADDS a block, because he's the one determining the latest consensus). The "bad guy" is the one trying to modify former consensus for other reasons than "orphaning by error", in order to reverse a transaction (and double spend) ; censor a transaction (DoS), .... If techniques are known to the bad guy, that the good guy is not supposed to use, then the economic cost of an attack becomes less than than the cost of making the original consensus !
I totally agree with that, but a level playing field without AsicBoost is preferable because it interferes with potential improvements to the protocol.
Well, I haven't studied that part, but I have a hard part imagining that asicboost cannot be applied to whatever change in the protocol. Maybe the calculations have to be re-organized or so, but, without having looked into it in detail, I don't see at first sight how you cannot use ASIC BOOST, because the way I understand it, it is just a smarter re-organisation of calculations that have to be done *in any case*. So essentially, instead of doing them over at random orders, you organize them better so that you can re-use calculations you would simply do over without thinking. But maybe that the *way* of organizing this is different with a new protocol, and maybe that this screws up the way it is *currently* implemented. (*)
I wanted to point out too, that already now, the standard way of doing the hash calculations, does a very similar thing, by organizing the calculations in such a way that a lot of them don't have to be stupidly re-done: the first compression function call is NOT re-done when looping over the nonce that only occurs in the second block. So "organizing your calculations so that you don't do all explicit full hashes of all tested blocks, but re-use results" is already standard practice. Asic boost simply pushes this somewhat further.
(*) The reason why I think that, is simply the following, but as I said, there may be technicalities that escape me, as I didn't look into it.
What happens now is that there are two fields in the header that can be tuned in order to satisfy the difficulty: there is the nonce, of 32 bits, in the second part of the header, and there is the merkle tree root (32 bytes in total, 256 bits), of which 28 bytes are in the first part, and 4 bytes (32 bits) are in the second part.
The trick of ASIC boost is that instead of using the merkle tree roots that one needs to try in an arbitrary order, one can organize them in chunks where the 4 last bytes are the same (that happens once for every 65000 merkle tree roots tried, so if you're going to try a billion merkle tree roots, you use them in packets of about 15000 roots with the same last 32 bits, and then you try for each nonce value, the 15000 roots first, and you have to re-calculate the "key schedule" of the second block only once in 15000).
I don't see how this will change if we keep the same header structure. Maybe the way the Merkle tree will have to be calculated will be different, but it is the only handle one has, next to the nonce, which is too small. So I don't see how asic boost in some or other form, will go away.