Mostly because that's what the specs say you should use. While the client-id will almost always include (or entirely be) a MAC, it's a bad habit as NICs do sometimes get replaced (failures, upgrades, etc.) Most DHCP clients allow the user to specify an identifier.
BOOTP has no choice, as it has no such option(s). BOOTP predates DHCP, and is far, far, simpler.
(consult the RFC's if you really want to know how it all works.)
There is quite a bit of detail missing from your description, but you do have a fairly simple question:
Can I implement dhcp relay on the router for two subnet in same broadcast domain?
You could, but there really is no point. DHCP relay features are only there to proxy specific broadcast traffic (by default only DHCP traffic) from one broadcast domain to another.
Since your client and your DHCP server are in the same broadcast domain, there is no need to proxy DHCP broadcasts. The server and client will be able to communicate with broadcasts just fine without any help.
A bit more commentary on other parts of your description, although we are still lacking details:
I as I know it would not be successful for subnet address that not used as IP address in router in this case 192.168.4.0/24 should not work.
There is no reason the router interface/SVI for the VLAN cannot have two addresses, one from each subnet. As such, it could work just fine. Even if this weren't the case, there are other reasons one may do something like this.
But since it not sunetted properly I had no idea what that full flagged administrator tried to achive
There is nothing wrong with the subnetting. There are two perfectly good subnets that do not overlap in your description. Although there may be other problems in the setup.
What he was trying to achieve we could only guess without knowing more detail and/or asking the party in question.
Best Answer
According to the DHCP RFC (2131) it is the responsibility of both the server and client to detect duplicate addresses. The server should check using ICMP or similar and the client should check using ARP or similar:
In the case where the client detects it has received a duplicate address, it must reject the address with DHCPDECLINE and then attempt to obtain another address after a backoff period.
Note: all of these statements use the SHOULD key word, so although they are recommended, they are not mandatory (apart from the address rejection which is mandatory)
RFC 5227 provides more details on how clients can carry out IPv4 Address Conflict Detection