Да, это безопасно. По сути, LINQ-> SQL будет проверять набор отслеживаемых объектов на наличие изменений. Если какие-либо изменения были обнаружены, он начнет транзакцию и применит изменения. Если не было никаких изменений, это ничего не изменит.
См. статью MSDN , в которой указан порядок операций для SubmitChanges.
Помните, что метод называется SubmitChanges - это означает, что он будет отправлять только те изменения, которые были внесены в объект.