As the documentation says:
Function names as well as math accents are taken from the default text
font family. This holds for the math alphabets \mathrm and \mathbf,
too. The eulervm package determines the default font family (i.e., the
meaning of the macro \familydefault) at load time and will apply it
for the above purposes then. In the same way, the math alphabets
\mathsf and \mathtt are mapped to \sfdefault and \ttdefault. Thus, you
should redefine the default text fonts before loading the eulervm
package!
Which means that \mathrm etc will use the textfont families. So if you want eulervm you should either use the chars directly:
\documentclass{article}
\usepackage{bera} % bitstream font for text
\usepackage{eulervm} % eulervm for math
\newcommand{\tot}{\mathrm{bitstream}}
\newcommand{\tat}{\mathsf{sffamily}}
\newcommand{\tit}{\mathtt{ttfamily}}
\begin{document}
This text is bitstream, ``X'' below is eulervm. Problem: ``tot'' is CM.
\textsf{sffamily}, \texttt{ttfamily}
\[
f: X \to eulervm, \tot, \tat, \tit
\]
\end{document}
Or define/redefine your own math alpabeth:
\documentclass{article}
\usepackage{bera} % bitstream font for text
\usepackage{eulervm} % eulervm for math
\DeclareMathAlphabet{\matheuler} {U}{zeur}{m}{n}
\begin{document}
This text is bitstream, ``X'' below is eulervm.
\[
f: X \to \matheuler{eulervm}
\]
\end{document}