There are no technical problems other than all the rules regarding file opens/updates etc still apply.
So you need to be careful about things like having say ABCD1 and ABCD2 both open in the same program and performing CHAINs and UPDATEs. Unless you specify SHARE(*NO) on the OVRDBF every record pointer change you make in ABCD1 will also occur in ABCD2. That is, if you perform a CHAIN to ABCD1 followed by a CHAIN to ABCD2 then perform an UPDATE to ABCD1 you will actually be updating the record accessed in the CHAIN to ABCD2!
Also, you have to be careful with file opens when using SHARE(*YES) since all the files are sharing the same open data path you can not perform an UPDATE on say ABCD2 if you opened ABCD1 first and you specified ABCD1 as input only.
So, generally you would always use SHARE(*NO) in your OVRDBFs and then each file would be treated as fully independent of the other. This is a good technique if you wish to say read through a file sequentially and for each record CHAIN to other records in the same file without losing your sequential read position.
There is good info on the use of OVRDBF and SHARE options in the RPG Programmers Guide. Happy reading!