Why does the Genesis block coinbase input script push bits and the value 0x04 before the famous "Chancellor" message?
I found some more information on the Wiki:


  Generations have a single input, and this input has a "coinbase" parameter instead of a scriptSig. The data in "coinbase" can be anything; it isn't used. Bitcoin puts the current compact-format target and the arbitrary-precision "extraNonce" number there, which increments every time the Nonce field in the block header overflows. Outputs can be anything, but Bitcoin creates one exactly like an IP address transaction. The extranonce contributes to enlarge the domain for the proof of work function. Miners can easily modify nonce (4byte), timestamp and extranonce (2 to 100bytes).


https://en.bitcoin.it/wiki/Transaction

In other words, the first Bitcoin client copied the "bits" field (compact-format target) from the block header and used it in a push data operation for the coinbase input script. But I'm still not sure why this was considered to be a good idea.

Next, a second pushdata operation pushed the "extranonce" field. This field incremented whenever the nonce field overflowed. The privacy implications of this system are discussed here:

https://bitslog.wordpress.com/2013/04/17/the-well-deserved-fortune-of-satoshi-nakamoto/

I believe I can now answer my own questions:


No.
Bits is there because that's just what Bitcoin did. 0x04 is the extranonce field.
Yes.
Yes, in part.