Is $0! = 1$ because there is only one way to do nothing? The proof for $0!=1$ was already asked at here. My question, yet, is a bit apart from the original question. I'm asking whether actually $0!=1$ is true because there is only one way to do nothing or just because of the way it's defined.
 A: Yes, precisely there is a unique function $\emptyset \to \emptyset$ (with empty graph), which happens to be a bijection ($\operatorname{id}_\emptyset$).  Note, that $n!$ is the number of bijections $\{1,\dots, n\}\to \{1,\dots,n\}$.
A: For positive numbers the factorial function $n!$ is defined as the product of all positive integers less or equal to $n$. To define $0!$ we need to "extend" the definition. Another way to define it is to notice that:
$$(n-1)! = \frac{n!}{n}$$
Pluging $n=1$ we get: $0! = \frac{1!}{1} = 1$
A: That's right. One way I feel is a good way to argue this is to look at two collections in conjunction with each other, say Box A and Box B. There are $n$ objects in Box A, and $m$ objects in Box B, and let's suppose we want to find all possible ways of arranging the items in Box A, and then in Box B,  separately . Of course,
$$N = n!m!$$
Now suppose there are no objects in Box B. We still have $n!$ ways of arranging the remaining objects in Box A, so $0! = 1$. One way to do nothing extra.
A: Yes to both alternatives.
That there is only one way to do nothing is a strong motivation to ensure that the factorial is defined in such a way that you have $0! = 1$.
However, every question of "why is this true" in mathematics ultimately boils down to "it's a consequence of how things are defined". (presuming, of course, that we know the fact with full rigor)
A: From the combinatoral beginning it is like that by definition, but later developed branches of maths shows $Γ(n + 1) = n! \ \  n = 0, 1, 2...$ 
A: There is 1 way to select to do the same thing out of a set of activites (of which one could be "nothing") over and over $n$ times in a row if that is what you mean by "doing nothing". You could also consider this combination:
$$\left(\begin{array}{c}n\\0\end{array}\right) = \frac{n!}{n!\cdot 0!} = 1 \text{ iff } 0! = 1$$
One combination to pick 0 out of many activities.

However, except for the very most basic of tasks several things are usually necessary to do to get any one task done. Sometimes also order matters.
Say I want to make dinner. I will need to buy the food, prepare the food, boil it or fry it or put it in the oven. Just doing a few of the combinations of activities won't accomplish the task. I will need to achieve a true value of some chain of a series of ANDs and/or possibly ORs for activities to fulfil my criteria for having made dinner.
A: I'm going to go a bit against the grain and say that this isn't a very great way of thinking about this. Having a combinatorial intuition for functions that have combinatorial definitions is great, but that intuition often just doesn't work for vacuous cases where you plug in 0 for one of the values, because getting the right answer really requires thinking carefully about the formal definition with sets.
Say you have three numbers, 1, 2, 3, and you look at all the different ways you can write them down

1, 2, 3
1, 3, 2
2, 1, 3
2, 3, 1
3, 1, 2
3, 2, 1

Now if you count those, you see six lines. In general, if you do this for $n$ numbers, you will see $n!$ lines. But what about 0 numbers? Here's all the ways you can write 0 numbers:


Seems weird. I don't know about you, but I see 0 lines. But based on what everyone is saying, there should be one line there. What's going on? Is there really one way to count nothing?
The problem is that, for this intuitive definition to work right, there has to be one "empty" line. There aren't empty lines in the other cases, though, just when you have 0 numbers. Confused? Let's look at this just a little differently. Let's do the same thing again, but this time, when we write the numbers, let's write parentheses around them:

(1, 2, 3)
(1, 3, 2)
(2, 1, 3)
(2, 3, 1)
(3, 1, 2)
(3, 2, 1)

Now instead of counting lines, we count the number of parenthesized items of numbers. These are called $n$-tuples, or just tuples. $n!$ is the number of $n$-tuples, the number of tuples of length $n$. Formally, it is the size of the set of all $n$-tuples.
Now, let's do 0. How many tuples of length 0 are there? Here's one:

()

Based on our definition of a tuple (parenthesized ordered list of numbers), that counts. It should be pretty obvious that that is the only one. So 0! is 1.
At the end of the day, you have to define functions like $n!$ in a set theoretic way. Then the values of corner cases like $0!$ fall out of those definitions, typically by something called vacuous truth ("vacuous" is a word I used above, not by accident).
A: Yes. 0! = 1 because it is defined that way. One of the reasons it is defined that way is because it makes sense in the context of combinatorics given that there is only one empty object or permutation up to isomorphism.
So both are correct - it varies on one's definition of the factorial function. When defined in reference to a combinatorial quantity it would be possible to prove 0! = 1. When defined recursively it is usually taken as definitional.
A: "Everybody knows that if you add up no numbers, you get zero. Not everybody knows that if you multiply no numbers, you get $1$, but I know that." - Tom Goodwillie, 2 Dec 2008
A: From a combinatorial perspective, $0!=1$ because the only map between the empty set and itself is the empty map. However, I prefer the algebraic motivation.
An empty product of a repeated operation should yield the operation's identity. This means empty product (under multiplication) should yield $1$ and an empty sum should yield $0$.
Consider two disjoint finite (index) sets: $A$ and $B$. Then adding up everything over $A$ and $B$ should be the same as adding up everything over $A$, then over $B$ and then adding those two results. Symbolically:
$$ \sum_{n \in A \cup B} f_n = \sum_{n \in A} f_n + \sum_{n \in B} f_n$$
What if $B=\emptyset$? Then this says:
$$ \sum_{n \in A} f_n = \sum_{n \in A \cup \emptyset} f_n = \sum_{n \in A} f_n + \sum_{n \in \emptyset} f_n$$
Therefore, $\sum_{n \in \emptyset} f_n$ needs to be $0$.
The exact same line of reasoning yields this about empty products (we just use multiplicative instead of additive notation). Again, consider two disjoint finite (index) sets: $A$ and $B$. Then multiplying everything over $A$ and $B$ should be the same as multiplying everything over $A$, then over $B$ and then multiplying those two results. Symbolically:
$$ \prod_{n \in A \cup B} f_n = \left(\prod_{n \in A} f_n \right) \left(\prod_{n \in B} f_n\right)$$
Letting $B=\emptyset$, we get...
$$ \prod_{n \in A } f_n = \prod_{n \in A \cup \emptyset} f_n = \left(\prod_{n \in A} f_n \right) \left(\prod_{n \in \emptyset} f_n\right)$$
Therefore, $\prod_{n \in \emptyset} f_n=1$.
Finally, define $n! = \prod_{k=1}^n k = \prod_{k \in \{1,\dots,n\}} k$. When $n=0$, this is the empty product, so it needs to be $1$. 
