Just to clarify, my Sprint number and Google Voice numbers are different. Once Sprint started offering GV integration, I did complete that step. Since then, I turned off the Google Voice app. All of my calls are automatically routed through Google Voice at the Sprint network level. The use of "virtual" phone numbers is gone. I dial the outgoing number directly, and it displays my actual outgoing number (not the virtual number) in Sprint call logs and billing statements. This may explain the difference in how you're billed, and how I'm billed.
Even though my Google and Sprint numbers are still different, Sprint displays my Google Voice number on the Caller ID display of the person I'm calling. I think I had a choice here, but I want the GV number to be the number that the public sees (I can block unwanted numbers that way). The same is true for SMS.
People can still call my original Sprint number, and the behavior is the same, as if they had called the Google Voice number. The logs on the Google Voice website, will show when someone called the GV number directly, or my original Sprint number.
Hopefully, that clears things up, at least a little bit.