It may be that withdrawals don't return 200, they return 202 Accepted. This has a different meaning, it means the request was basically valid and has been started. It doesn't mean the withdrawal is successful.
Webhooks will be sent to update the status of the withdrawal, then you do also GET the state. So it could be that these requests were failed withdrawals or ones that hadn't finished yet.
A second possibility for this scenario is: each withdrawal must have a unique transaction_id, so if your API uses the same transaction_id again, the request will act idempotently: it will have no additional effect over the original request. It will still return 202.