The \maketitle command in scrreprt has an optional argument, so redefining it with \let\oldmaketitle\maketitle and \renewcommand\maketitle exposes you to a very big problem, which is well described in the documentation of letltxmacro.
If all you need is to add something at the end of what \maketitle is doing, then a safe way is to use xpatch (or regexpatch):
\usepackage{xpatch} % or \usepackage{regexpatch}
\xapptocmd{\maketitle}{\noindent\rule{\textwidth}{1pt}}{}{}
However this won't add a rule below the date. The reason is that with the default options \maketitle prints a page by itself and the rule will go on the next page; if titlepage=false is specified in the options, then the \@maketitle internal command is used.
So, in order to get a rule below the date, a better trick is to patch the commands and add the rule exactly after the printing of the date, which is done by \@date:
\documentclass{scrreprt}
\usepackage{xpatch} % or \usepackage{regexpatch}
\makeatletter
%% the following patch is for the `titlepage=true` option
\xpatchcmd{\maketitle}{\@date}{\@date\par\rule{\textwidth}{1pt}}{}{}
%% the following patch is for the `titlepage=false` option
\xpatchcmd{\@maketitle}{\@date}{\@date\par\rule{\textwidth}{1pt}}{}{}
\makeatother
\begin{document}
\title{My Title}
\author{My Name}
\maketitle
\end{document}
