After some research, I realized that using a birthday macro for non-expiry scoring is not appropriate. In fact, the score based on the macro is valid as long as the macro condition is met. Therefore, the day after the birthday, the condition is not met and the score is reduced.
The best way is to use marketing automation and select Time-based mode in the Start trigger step and define it to trigger daily. Then use an If/Else step and include the birthday condition in it. If the contact's birthday was that day, insert a Custom Activity for the birthday and define the birthday scoring rule based on this activity.