To have working opacity/transparency on general surfaces, set a flat 'water shader'(no waves/roughness/patch effect/etc), as the child layer to a surface layer, uncheck 'apply colour' on this surface so that all that is appearing is the water shader in this layer.
Now, you can use your opacity function, be it fractal, opacity map, noise function etc. as the 'blend shader' to the surface layer. Where the opacity map is white, fully transparent surfaces will appear. And it will blend out towards the black areas, becoming fully opaque.
Zeroing the reflectivity in the water shader gives you basic transparency, enabling reflectivity will let you make glass and such. Use the subsurface tab settings to control the amount of transparency.
Here's an example:
[attachimg=1]
Nodes for wings part:
[attachimg=2]
The wing transparency blender image is just a basic greyscale opacity map, white is transparent(membranes), black is opaque(veins). Shades of grey in between will apply the appropriate amount of transparency in grey areas, just like true opacity would.