According to the Setspn Overview, it's discouraged to use Setspn -A to add an SPN record and it's suggested to use Setspn -S instead.
It's said that Setspn -S checks if SPN already exists before adding a new one. Setspn –A does not perform this check.
Although you can use Setspn -A to add an SPN, you should use Setspn -S instead because -S will verify that there are no duplicate SPNs.
However on Windows Server 2012 I see that Setspn -S and Setspn -A behave in the same way: if an SPN record for an account exists then I get a failure both with -A and -S arguments.
Is there any real difference between Setspn -S and Setspn -A?