### Godot version

4.0.1

### System information

Windows 11

### Issue description

When you have binds set for a given signal in the editor and then duplicate the node with ctrl + D, it does not maintain the bind values; they are simply ignored. I can't imagine this is not a bug, so reporting it. If absolutely needed, I can produce a repro project for this, it's just very simple and probably an obvious bug somewhere in the duplication code.

### Steps to reproduce

1. Create a basic project. (One is not included because the issue requires actually doing the steps, rather than looking at what's there.)
2. Create a Node2D as the root of a scene. Give it an Area2D.
3. Add a script to the Node2D and connect the area_entered signal of Area2D to the Node2D's script, including one or more extra bound values in the advanced editor.
4. Duplicate the Area2D; note that the signal connections themselves are duplicated, but the binds array has not been.

### Minimal reproduction project

N/A
switch (GLOBAL_GET("editor/naming/node_name_casing").operator int()) {
		case NAME_CASING_PASCAL_CASE:
			return p_name.to_pascal_case();
		case NAME_CASING_CAMEL_CASE:
			return p_name.to_camel_case();
		case NAME_CASING_SNAKE_CASE:
			return p_name.to_snake_case();
	}
	return p_name;
}
void Node::_validate_child_name(Node *p_child, bool p_force_human_readable) {
	
	if (p_force_human_readable) {
		
		StringName name = p_child->data.name;
		_generate_serial_child_name(p_child, name);
		p_child->data.name = name;
	} else {
		
		
		bool unique = true;
		if (p_child->data.name == StringName()) {
			
			unique = false;
		} else {
			const Node *const *existing = data.children.getptr(p_child->data.name);
			unique = !existing || *existing == p_child;