Currently, reset_cause() returns SOFT_RESET after a watchdog timeout, the same as after you call machine.reset().
>>> import machine
>>> machine.WDT(timeout=1000)
[... reset ensues 1 second later]
>>> import machine
>>> print(machine.reset_cause())
5
>>> print(machine.WDT_RESET, machine.SOFT_RESET)
3 5