well... what an interesting question!
The answer is yes and no...
A usual way to create a singleton is to store globally its reference and to check if this ref is null before creating the object. You can do the same in CopperLan. The singleton device has a unique deviceID, so it is very easy to know if it is presentor noton the network. If it is already there, the application instance can avoid to cate a new one. In the opposite the application can create the device if it is not yet on the network, my advise would be to use fixed duplicate mode in this case.
so yes, it is possible to create a singletion device, if you mean a device having a unique instance on the network.
But since a device object can be handled only by the owner application (in term of input/output creation, message handling...), you can't share this singleton device between apps...
in conclusion, yes you can create a single instance device on the network. this device can be a unique messaging source/listener, but you can't add inputs/outputs nor process incoming/outgoing messaging from another app than the device owner.
is it clear?
/Phil