In RESTServer.inc, the getControllerArguments function is responsible for parsing the arguments out of the client request in order to pass along to the correct services function (in the case of views, that function is views_service_get in views_service.inc. The getControllerArguments function is correctly parsing the parameters, but the array created is "sparse". By this I mean if I specify "view_name" and "format_output" parameters, the resulting array looks like this:
$arguments[0] = "{my value for view_name}"
$arguments[5] = "{my boolean value for format_output}"
Though the array has elements @ indices 0 and 5, there are no indices for 1, 2, 3, and 4 - the entire array length is 2 instead of 6.
This sparse array is passed to services_method_call in services.module, which in turn uses call_user_func_array() to invoke the following function in views_service.module:
function views_service_get($view_name, $display_id = 'default', $args = array(), $offset = 0, $limit = 0, $format_output = FALSE)
My value for view_name, which is in $arguments[0], is correctly assigned to $view_name. However, since $arguments has a length of 2, my value for format_output, which is in $arguments[5], is incorrectly assigned to the $display_id argument.
It could be argued that this is a bug in the Views Service module, but considering that module is more common than the REST server it probably makes sense for the REST server to handle it.
As a workaround to this bug, a client should always specify all parameters to retrieve a view, even if the client leaves the values blank.