Q:

About CAML and its content

Problem:
I have understood the foundation of CAML and there are some questions that are still unclear in my mind.   

What context and when should a SP developer use CAML? 
Why using CAML to retrieve data?  what about stored procedure? 
How common is it for a SP developer to use CAML? 
Do you have a real based example when you used CAML? 

A:

CAML can be used in various ways to customize a SharePoint site, including the following:

In script or code that implements members of the SharePoint
Foundation object model, where CAML strings are passed through method
parameters, assigned to properties, or returned by methods and
properties
In SOAP messaging that passes CAML strings to a SharePoint Foundation
Web service to interact remotely with a deployment
In front-end site definitions used to instantiate SharePoint sites
In SharePoint Foundation Features to add specific functionality
within a particular scope
For supported SharePoint artificacts, always use CAML unless there is a reason not to. 
Use this link for more details.