@Adel Ouazani
As you already know edge nodes are for running your client processes. They are not running your cluster processes and usually not storing data, unless you are using edge node data ingestion and staging your data in edge node. So edge node configuration can be customized quite a bit based on your needs.
I have not seen customers having separate edge nodes for each project but I don't see anything particularly wrong except that it increases the number of ways your cluster can be accessed which means increasing chances of security holes.
One main consideration, however will be to make sure you have good network and bandwidth support between your cluster and all of the edge nodes.
Other than that, provided reasonable resources (like CPU, disk specially if you are staging data for ingest and memory), this should be fine.
I would also recommend reading the accepted answer on this thread for more details to help you make decision.
https://community.hortonworks.com/questions/34872/staging-on-edge-nodes.html