Question: Within my VS2013 Solution I have: 

* A Cloud Service.
* A Web Role.

How come I have to specify the database connection string in the CloudService's 'WebRole' properties, and also in the Web.config file (within the WebRole project)?

What is the essential difference between the two?

Answer: 
When you define a setting in Cloud Service's WebRole's properties, it gets saved into role's configuration settings file (\*.cscfg). The advantage of saving the connection string here is that you can change the setting on the fly without having to redeploy the package. 

If you define this setting in web.config file, if you were to make any changes to this setting you would have to create a new package and redeploy the package because your web.config file gets included in your package file.
See [CloudConfigurationManager Class](https://msdn.microsoft.com/en-us/library/microsoft.windowsazure.cloudconfigurationmanager.aspx). Using `CloudConfigurationManager.GetSetting("StorageConnectionString")` will retrieve the setting from the appropriate config store - in the case of a web role: First looks for the setting in the ServiceDefinition.csdef, if not found there, it will then look in the web.config for the value.