Workflow and versioning are two different things. Granted, versioning needs workflow to properly work, but they are two different things.
If you review what the API comments state, "Returns current document version. If versioning is used, gets the current VersionHistory record, otherwise gets the record directly from the database." So in all actuality, it is doing what it should. You just have to perform additional checking:
- to see if the document is in workflow
- what step its in
- if it is in workflow and in a non-published step, you'd have to go back and get the version where it was last published then.
Maybe I'm thinking too hard on this one, but it seems right. You might also check out the /CMSAPIExamples that are installed with your instance to see how they handle workflow and versioning via the API as well.