Why do we need public key as part of Witness in P2WPKH transactions?
This was discussed today on the #bitcoin-wizards IRC channel.  The reasons offered by Andrew Poelstra (andytoshi) were:


"Segwit had enough scope already."  That is, it was already a large change that some people considered controversial, so minimizing further changes was considered desirable.
"Pubkey recovery is incompatible with batch validation."  Poelstra goes on to explain that Bitcoin doesn't currently have batch validation for ECDSA and the reasons why, but it doesn't sound to me like batch validation would be impossible to add at a later point (though perhaps it would require a soft fork); presumably devs would prefer to work on batch validation and signature aggregation using Schnorr signatures instead.


Later, Gregory Maxwell (gmaxwell) added that "Certicom has a patent on key recovery that could potentially apply" to a possible construction, which could've made using that construction controversial.

FYI: your second question asked in edits should probably be asked separately as it's a completely different issue.