Hi @Anonymous ,
What is the Item property of your Form1? Have you set its item property as “Defaults(SPList)”?
Based on the information described in the Microsoft documentation, each field should be populated with its default value in NewForm():
“In FormMode.New mode, the contents of the Form control's Item property are ignored, and the default values of the Form's DataSource property populate the form.”
I did a test in my app, according to the conditions you provided, also set my Form’s Item property as “Defaults(Mylist)”. When I run my app, I meet the same situation as you: Number field is populated with default value 0, but date field isn't populated with today().
Then I add a submit button: “SubmitForm(MyForm)” , then add a record, only fill in Title:

Go to my SP list, I found that the date of this record has been filled with the default value(today()):

Double check my form, I found that the value inside Date is a Placeholder, it is not a value populated by default value. When view the “InputTextPlaceholder” property of the date field, Text is set as a date value:

So set this property as below and everything is ok(just replace Date(2001,12,31) with Today()😞
If(IsBlank(Self.SelectedDate), Text(Today(), Self.Format, Self.Language))
Best Regards,
Allen