When specifying a file name in the buffer object that cannot be found, a duration argument is being ignored and the length of the buffer will be 0. The helpfile suggest that it is possible to both provide a filename and a duration as argument.
Ah, I see what you mean. This is how it is in Max 4 as well; if the file is invalid, then the duration argument is not set. I'm not sure what can be done about this, but I will pass it along as a feature request.