É, realmente é uma área muito vasta. O conhecimento sobre essa linguagem de máquina é requisito primário para se aprofundar em programação, é a base, a origem, é esse conhecimento que vai responder todas essas perguntas sobre o que está acontecendo no computador quando usa tal coisa... Hoje em dia temos muitas ferramentas e tecnologias de "alto nível" que nos permitem desenvolver sem se preocupar com essa base, o que é um problema, pois cria profissionais mal acostumados com facilidades que não sabem se virar com as adversidades que surgem...
Você está cutucando o tema da forma certa, surgiu algo que você não entendeu e está correndo atrás para não deixar esse buraco no conhecimento para trás. Só que ainda não foi respondido, então para responder sua dúvida vou extender um pouco a resposta:
1 - Você já entendeu o que os modificadores W, R, e A significam e o que fazem (os nomes já são auto explicativo), mas para contextualizar com o modificador B, eu tenho que te dizer que os operadores W,R e A "sozinhos", por PADRÃO vão trabalhar com TEXTOS (modificador "t" que define "Text mode"). Ou seja, quando você coloca lá no código esses operadores sozinhos ("w", "r", "a"), é o mesmo de ter colocado "wt", "rt", "at", e dizer para o compilador "olha, vamos trabalhar O QUE TEM nesse arquivo utilizando leitura/escrita".
O que é "trabalhar em modo texto"?
R: Para resumir, você está dizendo ao programa que a estrutura do arquivo vai ser a mesma, ele vai continuar sendo um "arquivo de texto" (.txt, .py, .word, etc), e que você vai trabalhar o CONTEÚDO dele, e no final ele continuará sendo um arquivo de texto.
Aqui você tem que entender e fixar: "vamos trabalhar O QUE TEM nesse arquivo"
2 - Quando colocamos o modificador B em conjunto com os descritos acima, setamos a aplicação para fazer as mesmas coisas que eles fazem (escrever e ler), porém trabalhando O QUE É o arquivo, em binário. Aí vem a necessidade de você entender como funciona os arquivos, as aplicações para a máquina. E esses conhecimentos são conhecimentos de base, deixo abaixo o principal para você pesquisar:
- Bits e Bytes (aqui você vai entender a diferença entre (0 e 1) e (0 a F) que eu mencionei na outra resposta. (Final da postagem deixo alguns links)
Exemplo visual de uma representação de um arquivo em modo "binário" (modificador B) :
Representação por Bytes em Hexadecimal:
Quando você usa o modificador B, você está dizendo para o compilador "olha, vamos trabalhar O QUE É esse arquivo escrevendo/lendo, no modo binário"
O que é "trabalhar em modo binário"?
R: Em resumo, você estará dizendo ao programa: "Olha, iremos ler/escrever esse arquivo por completo, inclusive sua ESTRUTURA, não só o seu CONTEÚDO como no modo texto.
Aqui você tem que entender: "vamos trabalhar O QUE É esse arquivo"
Você pode modificar o arquivo como um todo, não só seu conteúdo.
Sobre o conhecimento de Bits e Bytes ou relacionados à como o computador funciona: