Rejecting a SIP call in Spark does not reject the hard phone call
When you receive a SIP call in both hard phone and Spark, and you reject the call in Spark the hard phone still rings.
See Bradley Watkins comment.
This is extremely unlikely to change, as it's not even the fault of Spark/Openfire. You're in a SIP parallel forking scenario over which no one UA has any control. The Spark SIP UA can reject the branch that reaches it, but the hard phone must reject the other (or the SIP proxy must be configured in such a way as to do it for the UA).