Content PUT API not supporting child component upserts
### Node Version

22.13.0

### NPM/Yarn/PNPM Version

10.9.2

### Strapi Version

5.8.0

### Operating System

MacOS

### Database

SQLite

### Javascript or Typescript

Typescript

### Reproduction URL

https://github.com/lucasheim/strapi-v5-upsert-bug

### Bug Description

When you have a Collection type with an attribute as a Repeatable Component, there's no way of updating the data on the components without creating a new one.

I have a very small reproduction repo here: https://github.com/lucasheim/strapi-v5-upsert-bug

There, I have one collection called `Parent Collection`, it has two properties:
- `name` - Short Text
- `children` - Component (repeatable)

The component used above is called `Child Component` and it contains one single property:
- `childName` - Short Text

### Steps to Reproduce

1. Create a new entry for the collection in the UI. It's possible to fetch it through the API

![Image](https://github.com/user-attachments/assets/08007bfd-c4a3-488b-9d2a-6c37e0e26ebb)

2. Add a new component to the `children` property via API

![Image](https://github.com/user-attachments/assets/302386b2-f38e-4123-84b8-4b4beeed7eee)

3. Fetch again the data through API, it should be updated with the new child

![Image](https://github.com/user-attachments/assets/74ac42c4-b3fb-41c9-b090-6fac3b622324)

4. Try to update the existing child entry created by providing the ID on the API call

![Image](https://github.com/user-attachments/assets/4b91b1d0-e6ed-43b7-a991-77000ce43e9c)

Error comes up: `Invalid key id`

### Expected Behavior

It should allow the `id` property to be passed when updating a child component via a PUT API call. This is possible on Strapi v4 and I believe it's not working because of a wrong validation here: https://github.com/strapi/strapi/blob/develop/packages/core/utils/src/validate/visitors/throw-unrecognized-fields.ts#L20

First, it seems a bit weird to me that this array of allowed properties is just repeating the same property twice, so it seems like a typo: https://github.com/strapi/strapi/blob/develop/packages/core/utils/src/validate/visitors/throw-unrecognized-fields.ts#L14

Locally I tried to change this and it still wasn't enough to fix this bug. So what I did as a workaround was just commenting out the `throw` at the end of the function: https://github.com/strapi/strapi/blob/develop/packages/core/utils/src/validate/visitors/throw-unrecognized-fields.ts#L61

When I removed this, the validation error didn't come up (obviously) and the feature actually worked, I was able to update my component data without having to recreate it. So I believe we need one more condition on this function that allows ID to be passed in this cases.

### Logs

```shell

```

### Code Snippets

_No response_

### Media

_No response_

### Additional information

_No response_

### Confirmation Checklist

- [x] I have checked the existing [issues](https://github.com/strapi/strapi/issues) for duplicates.
- [x] I agree to follow this project's [Code of Conduct](https://github.com/strapi/strapi/blob/develop/CODE_OF_CONDUCT.md).