JsonResult to derive from ObjectResult.

While I agree in general what you say holds true but consider this, if there was a filter which sets the content type to application/xml then even though a particular action is returning a JsonResult the body is going to have a content type header set to application/xml while the actual body is in json format. 
This is wrong, if we do not want to override here we should probably throw an exception here saying that content type was already set to something other than the supported formats for JsonResult.