Deine if-Abfrage geht einfach ins leere:

Bei gleichem Token machst du:

\ifx a a \empty

a=a ist aber richtig. Somit gibt er empty aus.

Du solltest hier mit xparse arbeiten:

Code:
\documentclass{scrreprt}
\usepackage{xparse}
\NewDocumentCommand\urls{ o m }%
{% 
  \url{ #2 }%
   \IfNoValueF{#1}{\footnote{Abruf am: #1}}%
 }
\usepackage{hyperref}

\begin{document}
Fehler: \urls[22.02.2013]{http://www.google.de} 

funktioniert (ohne Datum): \urls{http://www.google.de} 

funktioniert (mit Leerzeichen): \urls[ 22.05.2013]{http://www.google.de}

funktioniert: \urls[01.05.2013]{http://www.google.de}

Fehler: \urls[11.05.2013]{http://www.google.de}

Fehler: \urls[22.05.2013]{http://www.google.de}

Fehler: \urls[zz.ww]{http://www.google.de}
\end{document}
Marco