Say, I have an address. I can check if it's watch-only by calling validateaddress. Is there such an easy way to check it that address is new or has been used already?
maybe be a bit more specific, which client you use... I assume bitcoin core? In bitcoin core there is the command line interface (bitcoin-cli), that allows to send requests to the client. Specifications here: https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list
"getreceivedbyaccount" or "getreceivedbyaddress" could do the jobe here.
Also, there are many blockchain "service" companies, which provide a web interface to look at the blockchain. For example: https://blockchain.info/
On the top right you can enter an address, and see if you have already transactions used with it.