Hi @CaoRq
That's desired behavior. Here's the reason:

If the flags are not cleared, you wouldn't be able to get the most recent source of reset next time. Only power-on reset clears the flag, so the flags would cumulate in the registers after "non-power-on" resets and it would not be possible to recognize which flag was set as the last one.
Solution - read the reset reason by Mcu_GetResetReason and store it in own variable for next use.
Regards,
Lukas