Похоже, проверьте исходный код файла ControllerActionInvoker.cs . Я не проверял это, но логика говорит мне, что возвращение void установит для actionReturnValue значение null, поэтому генерируется EmptyResult. Это самый последний исходный код, не проверенный источник для ASP.net MVC 1.0.
protected virtual ActionResult CreateActionResult(ControllerContext controllerContext, ActionDescriptor actionDescriptor, object actionReturnValue) {
if (actionReturnValue == null) {
return new EmptyResult();
}
ActionResult actionResult = (actionReturnValue as ActionResult) ??
new ContentResult { Content = Convert.ToString(actionReturnValue, CultureInfo.InvariantCulture) };
return actionResult;
}