By reloading the page webkit receives a new 'global' context for that new page and your bindings must be added to this new context. There should be no need to delete the bindings and recreate them, just add them to this new context.
I'm not sure what your C++ code looks like but for instance I have just added a rebind function to my Javascript binding class that receives the new context from webkit and rebinds the "dummy" object.
void JsDummy::rebind(JSGlobalContextRef ctx)
{
// m_jsDummyClassRef is a JSClassRef created and stored in the JsDummy class
JSObjectRef JsDummyObjectRef = JSObjectMake(ctx, m_jsDummyClassRef, this);
JSObjectRef globalObjectRef = JSContextGetGlobalObject(ctx);
JSStringRef DummyName = JSStringCreateWithUTF8CString("Dummy");
// Attach the JavaSript object "Dummy" to the new global context
JSObjectSetProperty(ctx, globalObjectRef, DummyName, JsDummyObjectRef, kJSPropertyAttributeDontDelete, 0);
JSStringRelease(DummyName);
}
Hope that helps.