For VHDL, you don't want to just rename the file, you want to rename the ENTITY inside. Reading two different file names that have the same ENTITY names inside will cause problems(hopefully just an error). When you generate a megafunction, you get to create the name, and it's really important to give it a unique name for its functionality. (But don't make it unique on its instantiaion, since hierarchy will give it a unique name based on where it's instantiated). A good directory structure can help, i.e. something like:
/rtl
/ingress
/egress
/arbitrator
/common
If you write parameterized code, which can be very powerful, you'll find a lot more going into the /common directory.