I know that OSPF uses router IDs, for example in LSDB. But, why doesn't RIP use router IDs for anything?
An OSPF router needs to get a full understanding of the whole area, including routers to which it is not directly connected.
RIP only knows about the directly connected routers. To RIP, the router IP addresses of the other routers give it everything it needs to know about the other routers. A RIP router will know on which interface a router is connected to it.