The best way to get a perspective on the issue - as already seen by many of the replies here - is to pull back from classical logic to something more general and to address the matter in the more general setting. The reason is that classical logic flattens out important distinctions that lend the needed perspective on the matter and clarify what is going on. So, we need to consider a more general setting where those distinctions are not conflated.
In reality, what you're actually asking - in reverse - is what kind of logic permits the rule you cited. When you ask "why", you also need to have something on the playing field where the "why not" is also the case: and that's what makes it necessary to step back. Otherwise, the answer would simply be "the rule is a rule in classical logic, because that's just what classical logic is" and that would be that.
But actually, even a foray into intuitionistic logic isn't enough. To get a better view, still, of the matter, you should also broaden the scope to bi-intuitionist logic. I will show you, first, a comparison of the three and where they fit in terms of the question and see where everything fits together.
There are actually two senses of the word "not" that are in common use; and people do actually make a distinction between the two. The weaker version of "not A" is "A is not true", while the strong one of "not A" is "A is false". The most familiar example is seen in political discourse, where respected adversaries disagree not by saying the other person's point "is false", but only that it is "not true".
In classical logic, no such distinction exists: they're the same.
In intuitionistic logic, only "is false" sense can be formulated: formalizing the "is false" sense of "not A" as ¬A = A⊃⊥. This is expressed in terms of the "only if" connective ⊃ (i.e. A⊃B means "A only if B", or equivalently "if A then B") and the "false" statement ⊥. So, let's call the stronger version of not "refute".
A key property - the defining property in fact - of the conditional is that there is a one-to-one correspondence between inferences C∧A ⊢ B (that is: inferences of B from the conjunction "C and A") and inferences C ⊢ A⊃B (i.e. inferences of the conditional A⊃B from C alone). The two are equivalent.
Applied to the "refute" operator, this expresses a one-to-one correspondence between C∧A ⊢ ⊥ and C ⊢ ¬A ... voilá! There's part of what you're looking for: the positive version of proof by contradiction. If C and A together yield a contradiction then from C alone we may infer the strong "A is false" version of "not A" - that we: we may refute A, from C.
If you use this version of "not", then the best you can achieve from this is to start with the inference C∧¬A ⊢ ⊥ and conclude that C ⊢ ¬¬A. In classical logic, this is good enough, because you have the double-negative rule. But this doesn't really answer your question: it only shifts the question over to the double-negative rule and puts the spotlight on that, instead. And, so you don't get any real insight on the matter other than "it holds in classical logic, but not in intuitionistic logic ... because they're different."
You actually want the negative version of proof by contradiction, that whenever the inference (the context of Other Stuff) and (not A) ⊢ ⊥ holds, then we also have the inference (the context of Other Stuff) ⊢ A. That's what your question is alluding to.
Collecting all the "Other Stuff" into C, this reads as the rule that given the inference C∧(not A) ⊢ ⊥ we should also have the inference C ⊢ A.
Do we? Well, that's where we get into bi-intuitionistic logic; because that's actually a characterization of the other, weaker version of "not"!
Bi-intuitionistic logic is a form of logic that lies between intuitionistic and classical logic. It includes the dual versions of the "not" and "only if" operators; which we will denote here respectively: A⊂B for "A unless B", ⨽B = ⊤⊂B, for the "B is not true" version of "not B". We'll call this the "denial" operator.
Here, the property that characterizes the "unless" connective ⊂ is that there is a one-to-one correspondence between inferences A ⊢ B∨D and A⊂B ⊢ D. That is: if we can infer the disjunction B∨D (i.e. B or D) from A, then by excluding B, we may infer D, alone, i.e. from "A unless B".
When applied to the denial operator, this leads to the rule that if we can infer ⊤ ⊢ B∨D (that is: if we can actually assert that B or D is true), the we can equivalently infer ⨽B ⊢ D: i.e. we can infer D alone from the denial of B. Now you're almost where you need to be.
In bi-intuitionistic logic, a denial may be inferred from a refutation. That is: ¬A ⊢ ⨽A is a valid inference: "is not true" follows from "is false".
The instant you assert the converse as a rule, you have classical logic. Classical logic is equivalent to bi-intuitionistic logic plus the rule ⨽B ⊢ ¬B that equates denial with refutation. And that's where important distinctions start to collapse.
The threshold from intuitionistic or bi-intuitionistic logic to classical logic is actually a watershed. If any of a large number of rules is added to either form of logic, the result is equivalent to classical logic. And every single rule in that watershed is a rule that has had a long controversial history attached to it.
My favorite one is the "continuation rule", which generalizes the equivalence rule for conditionals by attaching a "continuation" (∨D) to the right. It says that the inference C∧A ⊢ B∨D is equivalent to the inference C ⊢ (A⊃B)∨D. If you add that rule to intuitionistic logic, you get classical logic.
In many cases, the watershed rules have reflections expressed in terms of the dual operators that are valid in bi-intuitionistic logic, but don't cross the watershed. So, we can begin to see the distinctions that classical logic flattens out.
First, from the trivial valid inference ¬A ⊢ ¬A, we have ¬A∧A ⊢ ⊥. The "rule of contradiction" applies to the "refute" operator. In contrast, if the same rule is expressed in terms of the denial operator B∧⨽B ⊢ ⊥, then it's actually one of the above-mentioned watershed rules that pushes you into classical logic.
Second, from the trivial valid inference ⨽B ⊢ ⨽B, we have ⊤ ⊢ B∨⨽B. The "excluded third" rule holds for the "denial" operator. But if we try to impose the same rule on the "refute" operator ⊤ ⊢ ¬A∨A, then the result (once again) is another watershed rule and we've landed in classical logic.
Bi-intuitionism plus the rule B∧⨽B ⊢ ⊥ equals classical logic.
Intuitionism plus the rule ⊤ ⊢ ¬A∨A also equals classical logic.
Your version of proof by contradiction rule (where expressed in terms of the "refute" operator) ... as we saw above ... is tantamount to the double-negative rule; and that's one of the watershed rules that pushes you into classical logic.
In contrast, when your version of the proof by contradiction rule is expressed in terms of the "denial" operator, the result is a weaker rule that actually does hold in bi-intuitionistic logic, but can't be expressed in intuitionistic logic, because it is using the extra "denial" and "unless" connectives.
To see this, suppose that taking C and the denial of B together yields a contradiction. That is: suppose we have the inference C∧⨽B ⊢ ⊥. Then, we may switch the order of the conjunction to rewrite this as ⨽B∧C ⊢ ⊥ and then apply the conversion for the "refute" operator to rewrite this equivalently as ⨽B ⊢ ¬C and apply the conversion for the "denial" operator to write this, in turn, equivalently as ⊤ ⊢ B∨¬C.
So, now let's add the supposition of C, itself, and attach it as a conjunction. Then we have C ⊢ C∧⊤ ⊢ C∧(B∨¬C) ⊢ (C∧B)∨(C∧¬C), where we apply distributivity in the last step.
Since we already have the rule of contradiction ¬C∧C ⊢ ⊥, then switching the order of the conjunction, we have the inference C∧¬C ⊢ ⊥. Applying this to the above result, we get C ⊢ (C∧B)∨(C∧¬C) ⊢ (C∧B)∨⊥ ⊢ C∧B ⊢ B.
So, the answer to your question is: Yes. Your rule is logical - but only with the weaker "denial" operator in bi-intuitionistic logic. And the answer to the implied, underlying, question (what logic is the rule valid in) is: bi-intuitionistic logic.
Many of the "watershed" rules that push you from either intuitionism or bi-intuitionism over into classical logic have weaker versions that are written by replacing one version of the "not" operator with the other. So, we can actually segregate the rules by which "not" they work with and draw a very finely-graded distinction between each of the watershed rules.
One further example I will give here is that the double-negative rule holds in one direction A ⊢ ¬¬A for the "refute" operator and in the other direction ⨽⨽B ⊢ B for the "deny" operator. The converse direction only holds for negatives; i.e. ¬¬¬A ⊢ ¬A and ⨽B ⊢ ⨽⨽⨽B are both valid.
(Correspondingly, we may then say that in intuitionistic logic, the "regular" statement - i.e. the statements equivalent to their double-negatives - are one and the same as the "negative" statements; and that classical logic is what results from intuitionistic logic by allowing only negative statements; or more briefly: classical logic is pessimistic).
There is actually an entire hierarchy of statements that may be generated from a single statement C, by repeatedly applying different combinations of ⨽ and ¬ to C; so the word "not" acquires a very nuanced meaning in bi-intuitionistic logic. So, there is plenty of room to draw many distinctions between different nuances of each of the watershed rules, as we just did above.