Yes, but in case of conflict the replication stops, ane You will have to reinitialize it from master.
The consequence of this is, that if you have two instances of application, which are writing to many replicated databases, and application ensures avoidance of conflicts - the system will still work properly.
Although bad practice, yes you could theoretically do so, provided you follow one simple rule:
DO NOT INSERT, UPDATE, or DELETE ANY DATA FROM ANY DATABASE THAT THE MASTER WRITES TO.
Although bad practice, I have seen clients set up development/staging databases on a slave. The master would replicate to slave's copy of production databases and SELECTs would be run from them.
Developers would read from and write to developer/staging databases at will.
As long as developers never touch the slave's copy of production databases, they usually never have a problem.
You also do not want master-master setups to have developer/staging databases. It just creates more replication traffic and binary log bloating.
@staticsan and @pitr have made valid points also very worthy of consideration.
+1 for both of you !!!