I'd suggest 'it depends' as answer. Whether or not
B are to be considered members of the same grapheme or allographs of one single grapheme (call it
/b/) is not so much a statement about reality as it is a statement about the assumptions that you built your theory on. This is exactly the same state of affairs as in phonology.
I give a simple example. In phonology, you look for minimal pairs and sound correspondences to determine whether or not two observed phones (i call them 'phonotypes') belong to one or two phonemes. Using that method, you find out that [d] and [t] belong to two distinct phonemes in German, because [de:r] and [te:r] and many other pairs are consistently kept apart. You also find out that what is written
ch, [ç] and [x], should be allophones of the same phoneme (call it /x/), because of such word pairs as
—Löcher` where [x] and [ç] are interchanged consistently, depending on the quality of the preceding vowel (it's a natural change where velar vowels go along with the velar consonant and palatal vowels with the palatal consonant).
That's all fine until someone comes up with a counterexample. There's a actually at least one minimal pair in German which does distinguish between [ç] and [x], and that's
Kuhchen [ku:çən] ('small cow', diminutive of
Kuchen [ku:xən] ('cake'). While you hardly in your lifetime will overhear a German speaker say
Kuhchen, building diminutives with [-çən] (and [-lain]) is a demonstrably active process in German, which is used on a daily basis.
So it looks that [ç] and [x] cannot be viewed as members of the same phoneme.
Until, that is, someone comes along to point out a flaw in your analysis, and that would be the negligence of morpheme boundaries in your analysis. True, [ku:çən] and [ku:xən] do look like a minimal contrast, but only until you put back those boundaries: then, [ku:#çən] (
-chen) and [ku:xən] (single morpheme) do look different, and this difference can be understood of what is causing /x/ to come out as [ç] in the one case and as [x] in the other.
In other words, whether or not we can establish a phoneme /x/ = [ç, x] will depend not on the German language, but whether your theory does or does not take morpheme boundaries into account.
B (and b, b, 𝒷, 𝔟, 𝕓 and so on) are 'same' or 'different' will depend on your use case. Write down
MIND THE GAP on a piece of paper and stick it to the wall, everyone will thank you for the warning and understand it just as well as
mind the gap; write
EINSTEIN WAS WRONG in your essay, and your teacher will pick up the red pen because she thinks only
Einstein was wrong is correct orthography for an essay. Write 𝖁𝖔𝖗𝖘𝖎𝖈𝖍𝖙 on a sign in Germany these days and people will find it strange, use it the same type in a newspaper masthead and people will find it customary. Use b, b, and 𝒷 interchangeably in your personal notices and it's up to you, confuse them in mathematical formulas and that important maths periodical won't publish you. Same isn't same, different isn't different.