I think it's incorrect to think of prolog's execution model in terms of "functions" and "output". So I don't think the nicities you're hoping for are applicable in prolog (at least not in their straightforward definition).
Though I agree that prolog seems like it came from the 90's; I especially agree with that "functions with slightly different names" bit.