I don't think it is a bug in datediff. But let's check.
For year 2000 we have 366-31-29+1= 307 days.
For year 2200 we have 31+28 = 59 days.
In between we have 199 years. Of these 48 are leap years.
This gives a total of 307 + 59 + 199*365 + 48 = 73049
Multiply by 1440 and we get 105190560.
Which is precisely what SELECT DateDiff(Minute, '02/29/2000', '03/01/2200') returns. So I cannot see any bug there.
Then again, what you thought was wrong was the result of DateDiff * 60 * 24 * 365.25, and the last value is the wrong one. 365.25 works with the old Julian calendar which had leap years every four years, including years like 2100 and 2200. But as we know, the length of a year is slightly shorter than 365.25 days.
The multiplication with 365.25 works with shorter intervals that do not cross years 2100 and 2200. To cover these, you need something more sophisticated. (A plain factor won't do, since it is irrelegular.)