Seems like there were some changes made to the receipt validation's sandbox environment behaviors since around a week ago.
1) when a subscription product is purchased, I get the prompt asking whether I want to turn off automatic renewal (new) but my dialogue choice is irrelevant because in the receipt validation response the auto_renew_status is always 1
2) the subscription product used to get automatically renewed 5 times before it goes into billing retry period, but now it does not get renewed even when auto_renew_status = 1 before the expires_date.
3) the subscription now enters its grace_period whereas it didn't before
4) auto_renew_status retains its value even after the subscription expires. It used to become 0 before.
These seem like merely behaviorial changes in sandbox and may not reflect changes in the production environment. However I would really like to know if there were official documentations on the changes, as things still seem a bit unstable (per point 1 and 2) and I don't want to make assumptions on auto_renew_status based on its sandbox behavior.