Your guess is more-or-less correct, including the fact that biblatex alters the approach a bit (other packages modify it also, but not to the same degree). Taking the simplest case of a single .tex file without any requirement for multiple bibliographies or similar:
\bibliographystyle writes the \bibstyle{...} line to the .aux file: this can therefore be given in the preamble
\bibliography writes the \bibdata{...} line to the .aux file, and also inputs the .bbl file, if it is available.
\cite writes a \citation{...} line to the .aux file, and also creates the citation in the LaTeX document
\nocite writes a \citations{...} line to the .aux file, but does not do anything in the LaTeX document.
When BibTeX reads the .aux file, it looks for one \bibstyle line and one \bibdata line along with multiple \citation lines. It will then write a .bbl file, but what goes in there depends on the instructions in the .bst file. The usual convention is that the .bbl file will contain just the bibliography environment which holds formatted citations, although this is not always the case.
There are many additions which can be made to this workflow. For example, biblatex defines \bibliography to be used in the preamble, as it does not work with a .bbl file containing data for printing directly. Multiple bibliographies may be created by using more than one .aux file to create a set of .bbl files. I've also seen an implementation where an XML version of the bibliography is written as a LaTeX 'comment' within the .bbl file. These approaches still use the same underlying interface, in the sense that BibTeX is still looking for the same commands in the .aux file and writing a .bbl file.
Taking the example of multibib, at the LaTeX end it defines a set of commands for each new type of bibliography, for example
\newcites{sec}{Secondary Literature}
creates a new citation command
\citesec{...}
These new commands write to a separate .aux file from the main one, which means that BibTeX has to be run twice, once on the \jobname.aux file and once on the sec.aux file. This will generate two .bbl files, \jobname.bbl and sec.bbl, which are then read as normal by \bibliography and \bibliographysec, respectively. Thus the overall process is almost unchanged from the standard case, but there are simply more files involved.