Okay so I think I figured this out before you posted this. What I did was I create 2 reflection cameras. One for each of my scene cameras. Then when toggled between either 3rd or first person. I set the water rtt texture to the active cameras child reflection camera.
reflectionCameraNode_ = cameraNode_->CreateChild();
reflectionCamera = reflectionCameraNode_->CreateComponent<Camera>();
reflectionCamera->SetFarClip(750.0);
reflectionCamera->SetViewMask(0x7fffffff); // Hide objects with only bit 31 in the viewmask (the water plane)
reflectionCamera->SetAutoAspectRatio(true);
reflectionCamera->SetUseReflection(true);
reflectionCamera->SetReflectionPlane(waterPlane_);
reflectionCamera->SetUseClipping(true); // Enable clipping of geometry behind water plane
reflectionCamera->SetClipPlane(waterClipPlane_);
reflectionCamera->SetAspectRatio((float)graphics->GetWidth() / (float)graphics->GetHeight());
reflectionCamera->SetViewOverrideFlags(VO_DISABLE_SHADOWS);
int texSize = 2048;
renderTexture = (new Texture2D(context_));
renderTexture->SetSize(texSize, texSize, Graphics::GetRGBFormat(), TEXTURE_RENDERTARGET);
renderTexture->SetFilterMode(FILTER_BILINEAR);
RenderSurface* surface = renderTexture->GetRenderSurface();
SharedPtr<Viewport> rttViewport(new Viewport(context_, scene_, reflectionCamera));
surface->SetViewport(0, rttViewport);
waterMat = cache->GetResource<Material>("Materials/relic_water.xml");
waterMat->SetTexture(TU_DIFFUSE, renderTexture);
reflectionCameraNode2_ = cameraNode2_->CreateChild();
reflectionCameraFP = reflectionCameraNode2_->CreateComponent<Camera>();
reflectionCameraFP->SetFarClip(750.0);
reflectionCameraFP->SetViewMask(0x7fffffff); // Hide objects with only bit 31 in the viewmask (the water plane)
reflectionCameraFP->SetAutoAspectRatio(true);
reflectionCameraFP->SetUseReflection(true);
reflectionCameraFP->SetReflectionPlane(waterPlane_);
reflectionCameraFP->SetUseClipping(true); // Enable clipping of geometry behind water plane
reflectionCameraFP->SetClipPlane(waterClipPlane_);
reflectionCameraFP->SetAspectRatio((float)graphics->GetWidth() / (float)graphics->GetHeight());
reflectionCameraFP->SetViewOverrideFlags(VO_DISABLE_SHADOWS);
renderTextureFP = (new Texture2D(context_));
renderTextureFP->SetSize(texSize, texSize, Graphics::GetRGBFormat(), TEXTURE_RENDERTARGET);
renderTextureFP->SetFilterMode(FILTER_BILINEAR);
RenderSurface* surfaceFP = renderTextureFP->GetRenderSurface();
SharedPtr<Viewport> rttViewportFP(new Viewport(context_, scene_, reflectionCameraFP));
surfaceFP->SetViewport(0, rttViewportFP);
This may not be the most performant way to handle this though.