Can I get the object dimensions in Cycles?
Well, I can answer part of the question. You can get the values of the dimensions into cycles by using drivers, driving 3 separate Value nodes and using the data path of dimensions[0] as the driving value:


Add a Value node: Add> Input> Value 
Right click the value and choose 'Add Driver'.
Change to the graph editor and change to 'Drivers' mode from the header toolbar.
Use the following settings in the Property panel (N) after selecting the channel on the left: 




As you already identified the data path you need is dimensions[0] (0, 1, or 2).

This will result in:



(6.399 simply being the X dimension value of my test cube)

Repeat this for the 2 other dimension values and 2 more value nodes.

However, as to how you would combine 3 value nodes into a vector is something I don't know. You could of course drive something other than a 'Value' node using this method if that is more useful.



Edit: As noted by Chebhou, in the comments, as of Blender 2.72 a "Combine XYZ" node exists:



Instead of driving 3 individual 'Value' nodes, you can now drive the x, y and z values of the 'Combine XYZ' node which will result in a vector.