> According to my experience, it's because Python is just insanely  
> inconsistent in every single way.

examples?

I will start with a ruby one:

$1 to $9 
The contents of successive groups matched in the last successful 
pattern match. 
In "cat" =~/(c|a)(t|z)/, $1 will be set to ``a'' and $2 to ``t''. 
This variable is local to the current scope. {} 

$0 
The name of the top-level Ruby program being executed. 
Typically this will be the program's filename. 
On some operating systems, assigning to this variable will 
change the name of the process reported (for example) 
by the ps(1) command. 

Actually this are two in one. If $1 to $9 are groups, I don't
think $0 is following the principal of least surprise.

Additionally $1 to $9 aren't global despite the '$'.

cheers

Simon