Question: Why is the recurrence relation of recursive factorial algorithm this?

```
T(n)=1 for n=0
T(n)=1+T(n-1) for n>0

```

Why is it not this?

```
T(n)=1 for n=0
T(n)=n*T(n-1) for n>0

```

Putting values of n i.e 1,2,3,4...... the second recurrence relation holds(The factorials are correctly calculated) not the first one.

Answer: 
What he put was not the factorial recursion, but the time complexity of it.  

Assuming this is the pseudocode for such a recurrence:

```
1. func factorial(n)
2.   if (n == 0)
3.      return 1
4.   return n * (factorial - 1)

```

* I am assuming that tail-recursion elimination is not involved.

Line 2 and 3 costs a constant time, c1 and c2.  

Line 4 costs a constant time as well. However, it calls factorial(n-1) which will take some time T(n-1). Also, the time it takes to multiply factorial(n-1) by n can be ignored once T(n-1) is used.  

Time for the whole function is just the sum: T(n) = c1 + c2 + T(n-1).  

This, in big-o notation, is reduced to T(n) = 1 + T(n-1).

This is, as Diam has pointed out, is a flat recursion, therefore its running time should be O(n). Its space complexity will be enormous though.
I assume that you have bad information. The second recurrence relation you cite *is* the correct one, as you have observed. The first one just generates the natural numbers.