OData function param literal strings can be parsed as the expected type with the current code, however this is not the general expectation of odata. It's explicitly mentioned that there is no implicit conversion between string and numeric types:
And the sample service behaves the same way for DateTimeOffset: