Says the Rambam [Sanhedrin 18-6]:
גזירת הכתוב היא שאין ממיתין בית דין ולא מלקין את האדם בהודאת פיו אלא על פי שנים עדים וזה שהרג יהושע עכן ודוד לגר עמלקי בהודאת פיהם הוראת שעה היתה או דין מלכות היה אבל הסנהדרין אין ממיתין ולא מלקין המודה בעבירה שמא נטרפה דעתו בדבר זה שמא מן העמלין מרי נפש הוא המחכים למות שתוקעין החרבות בבטנם ומשליכין עצמן מעל הגגות שמא כך זה יבא ויאמר דבר שלא עשה כדי שיהרג וכללו של דבר גזירת מלך היא:
It is a Scriptural decree that the court does not execute a person or have him lashed because of his own admission. Instead, the punishments are given on the basis of the testimony of two witnesses. Joshua's execution of Achan and David's execution of the Amalekite convert because of their own statements was a directive of immediate relevance only or was by royal fiat. The Sanhedrin, however, may not execute or lash a person who admits committing a transgression, lest he become crazed concerning this matter. Perhaps he is one of those embittered people who are anxious to die and pierce their reins with swords or throw themselves from the rooftops. Similarly, we fear that such a person may come and admit committing an act that he did not perform, so that he will be executed. The general principle is the disqualification of a person's own testimony is a decree of the king.
The Rambam opens with the fact that it is a גזירות הכתוב that a person is not punished based on his own admission. Then he proceeeds to provide a rationale [maybe the guy is depressed or suicidal] and then he concludes that it is a גזירת הכתוב.
So is it a גזירת הכתוב or a rational law that we can all understand?