Nice article! One minor nitpick: rounding the noisy plaintext is part of decryption (in fact, the hardest part!) and you treat it as part of decoding a plaintext.
If rounding were not part of decryption, then one could implement bootstrapping without all that blind rotate magic, because the first step in bootstrap is to homomorphically apply b - <a,s>, and that is purely a linear operation. Sec 5.2 of https://eprint.iacr.org/2021/1402 explains this in a bit more detail.
I completely agree that it is possible to homomorphically evaluate b - <a,s> much more easily using homomorphic addition and multiplication. However, wouldn't we still need some sort of blind rotate magic to bound the output error?
If rounding were not part of decryption, then one could implement bootstrapping without all that blind rotate magic, because the first step in bootstrap is to homomorphically apply b - <a,s>, and that is purely a linear operation. Sec 5.2 of https://eprint.iacr.org/2021/1402 explains this in a bit more detail.