Can you clarify whether you mean only the `attestationObject` should be sent to the server or that everything should be encoded as a single CBOR object and then sent to the server?
The answer is as far as I know:
Backwards compatibility with bad decisions made in U2F
Also; relying on base64url is odd as there are no built in functions in JavaScript to encode and decode it.
I'm probably missing something, but aren't window.atob and window.btoa just that? It's not available in Node though.