Omni, what you want could probably be done through:
void DisplayImage(int x, int y, int src, dest = screen)
{
// ...
}
Which would allow for:
DisplayImage(int x, int y, int src[, dest])
...If that were implemented.
I'm sort of against overlapping functions with the same names. I don't see many instances where you need it really. And it's annoying when unintentionally overlapping something.