Is it possible to have separate meshes for the same object i.e one for topology and one for materials and textures?
Not really.

Closest Match to What you Describe

The closest you could get would be to UV unwrap both objects so that they shared the same UV space (perhaps using project from view if they are pretty flat), and then bake the second object out to an image file, which you would then apply to the first object as an image texture. You would probably just bake the basic diffuse (i.e. the basic colours), as you would want the glossy or any other shaders you were using to be dynamic.

In honesty though, this doesn't really resemble any workflow that I am familiar with.

Possible Alternative

If I have understood your basic problem, it is that you want to texture the first mesh in a way that you can't do by simply using the polygons that you have (because you would have to alter the geometry to match the lines that you want). To keep the geometry intact, you want to Unwrap the first object, assign a blank image texture to it, and then use Blender's Texture Paint tools.

If you only care about painting a colour or image, you could just paint this straight on and use it as the colour input to a diffuse shader. You could mix that with glossy or any other share you liked, but obviously the effect of the latter would apply to the entire mesh.

If you need something more complex (e.g. different shaders on different parts of the model) you would paint yourself one or more masks (black images, with white indicating where you want the desired surface) and use these masks as a factor input in Cycles to apply different shaders to different areas of the mesh. This would allow you to (for example) have a Blue shiny area in one part of the mesh, and a Red dull area in another part of the mesh.

If you don't like Blender's Texture Paint tools, you can (of course) do everything I describe above using an external editor like Photoshop or Gimp.