* With 6.1, if you publish a LIVE datasource to Tableau Server from Desktop you only share with other users the definition of the datasource (where to connect) and the metadata (data about the data, measures and dimensions). When a Tableau Desktop user imports the datasource from the server, he/she will run the queries to the DB or flat file from his/her desktop. However, if the same datasource is updated/fine tuned and re-published to server, the Desktop users will be prompted if they want to apply the changes made.
For a connection using an extract or tde. The tde can be exported to tableau server and scheduled to refresh on the tableau server. Let's say every night at 11pm. The refresh of the extract is accomplished on the server side and tableau server will need to have access to the DB.
* With our incoming 7.0 version: above about datasource using an extract still applies. In addition, when a LIVE connection to the DB is published to server, you can decide to have the queries ran by the server or the desktop. This is our new Data Server in version 7.
* Note that if you publish the workbook itself to server from Desktop, the datasource is sent with the workbook. When users click on refresh in their browser (using Tableau server and not Desktop), the server will query the database directly or the tde (tableau extract).
Best practice really depends on what you are trying to accomplish and which tool users will use (tableau Desktop or Browser tableau server).
I would say that you need to first decide if there is a real need to have all queries run LIVE or not for Tableau Desktop advanced users or publishers and / or Tableau Server browser consumers.
Let me know if you have any follow up questions.