$\emptyset$ is a function & $\emptyset$ is not a function The empty set is a function. Let A $\neq$ $\emptyset$. We know that the following is true:
0) $f$: $\emptyset$ $\rightarrow$ A is a function & $g$: A $\rightarrow$ $\emptyset$ is not a function. 
We also know the following are true: 
1) $g$ $\subseteq$ A $\times$  $\emptyset$ = $\emptyset$.  So $g$ = $\emptyset$. Hence: A $\times$  $\emptyset$ = $g$.
2) $f$ $\subseteq$  $\emptyset$ $\times$ A = $\emptyset$. So $f$ = $\emptyset$. Hence:   $\emptyset$ $\times$ A = $f$.
Some obvious consequences of this data: $f$ is a function, $g$ is not a function, $f$=$\emptyset$ & $f$=$g$  (by extensionality). This gives us:
3) $\emptyset$ is a function & $\emptyset$ is not a function (since $f$ and $g$ are the same object). 
This is a contradiction. 
Question: It's clear that $f$ vacuously satisfies the conditions required for a set to be a function and $g$ fails to satisfy those conditions. But since $f$ and $g$ just are the same set (by 1) & 2) they are the empty set), I'm having difficulty articulating why this doesn't lead to a contradiction. Where have I gone wrong?  
 A: You are mixing two "incompatible" conventions to talk about functions.


*

*The set-theoretic construction of functions as certain sets of ordered pairs.

*A function $f:A\to B$ as triple $(f,A,B)$ with domain $A$, codomain $B$ and mapping rule $f$.


If you decide to use the set-theoretic construction of functions, then the set $f$ of ordered pairs does not carry all the information that the notation $f:A\to B$ does. Given the set $f$, we might be able to extract the domain
$$\mathrm{dom}(f)=\{x\mid \exists y:(x,y)\in f\},$$
and we might be able to extract the range
$$\mathrm{range}(f)=\{y\mid \exists x:(x,y)\in f\},$$
but we cannot extract the codomain $B$ that you use in the notation $f:A\to B$. So, for example, the functions $\sin:\Bbb R\to[-1,1]$ and $\sin:\Bbb R\to \Bbb R$ are indistinguishable in the set-theoretic construction, as they are described by the same set, while they are usually considered different: one is surjective, the other one is not.
In the same way, only given the set, you might need more context to reconstruct the function. $f=\varnothing$ can stand for any function $f:\varnothing\to A$ for an arbitrary set $A$. 
Conclusion: $\varnothing$ is only considered a function if the context says so, and then you need more information to pin it down uniquely.
A: What you are missing is that "is a function" does not have any meaning in isolation (well, it can have a meaning, but not in the way you are using it here).  What does have a meaning is "is a function $B\to C$" for two specific sets $B$ and $C$.  So, the empty set is a function $\emptyset\to A$.  It is not a function $A\to\emptyset$.  This is no contradiction, because a function $\emptyset\to A$ is not the same thing as a function $A\to\emptyset$.

I cannot resist making an additional remark which is tangential to your question but is really important.  It's not correct to write something like 

$f$: $\emptyset$ $\rightarrow$ A is a function & $g$: A $\rightarrow$ $\emptyset$ is not a function. 

This sentence has no meaning, because you have not introduced the variables $f$ and $g$ yet.  This is a statement about two free variables $f$ and $g$, which may or may not be true for any particular values of $f$ and $g$.  You furthermore cannot then go on to reason about $f$ and $g$ as you have done, since you still have not ever defined what these variables refer to!
What you want to say instead is something like:

There exists a function $\emptyset\to A$, namely the empty set.  However there does not exist a function $A\to\emptyset$, and in particular the empty set is not a function $A\to\emptyset$, since there does not exist any function $A\to\emptyset$.

I recommend reading this nice blog post by Tim Gowers for more information about the proper use of variables.
A: When you say "$g:A \to \emptyset$ is not a function", you should pay close attention to what you mean. Importantly, you do not mean "no subset of $A \times \emptyset$ is a function". You mean "there does not exist a set $g \subseteq A \times \emptyset$ so that $g$ is a function with domain $A$". This is an important distinction, because the second version is true and the first version is not. Recall that a function is just a set of ordered pairs no two of which have identical first elements; $\emptyset$ trivially satisfies this definition.
Phrasing the rest of your argument equally carefully, here's what you're saying:
0) Let $f \subseteq \emptyset \times A$ be a function, and let $g \subseteq A \times \emptyset$ be not a function.
1) $f \subseteq \emptyset \times A = \emptyset$, so $f = \emptyset$.
2) $g \subseteq A \times \emptyset = \emptyset$, so $g = \emptyset$.
3) So $f = \emptyset = g$. $f$ is a function, but $g$ is not, so $\emptyset$ is both a function and not a function.
Now, there's one missing step: when you reach a contradiction at the end of a proof, you must conclude that one of your premises is wrong. So the proper conclusion here is
4) Either there is no function $f \subseteq \emptyset \times A$, or every $g \subseteq A \times \emptyset$ is a function.
Indeed, the latter is true: if $g \subseteq A \times \emptyset$, then $g = \emptyset$ (as you observed in 2) and therefore $g$ is trivially a function. It just doesn't have domain $A$, because you're correct that there are no functions $A \to \emptyset$.
A: Let me summarize what others have written before me.
The statement $f\colon X\to Y$ is a statement about the set $f$. It says that $f$ is a function, its domain is $X$, and its range is a subset of $Y$.
Whereas $\varnothing$ is in fact a function, it is not a function whose domain is non-empty. Therefore $\varnothing\colon A\to\varnothing$ is a false statement, it makes no sense. On the other hand, $\varnothing\colon\varnothing\to A$ is just fine.
A: There is no $g: A\rightarrow \emptyset$ not even $\emptyset$ since there is no way to map every element in $A$ to nothoing.

Edit: May be I didn't explain it well. I think that the misunderstanding in the question is not related to functions. It is about logic. 
When we say that there is no number in [1,1) we can write $\forall x\in [1,1), x \text{ is not a number}$ but we can't use it lately unless we prove that such $x$ does exist (i.e. $\exists x\in [1,1)$) which is not true.
The same thing here, we cannot declare $g$ as being element of an empty set then use it to prove a contradiction.
