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.