Broken down to the essentials/the basic ideas one can say:
For LaTeX-macros defined in terms of \newcommand that process optional arguments, in order to determine whether an optional argument is present, at some stage of processing \kernel@ifnextchar, the LaTeX 2ε wrapper around \futurelet, is used to test whether a token is present whose meaning equals the meaning of the explicit opening-square-bracket-character-token of category code 12(other).
Then a second macro is called by inserting a control-sequence-token into the token-stream whose name equals the name of the command defined via \newcommand but with a backslash prepended. E.g., with \newcommand\foo[2][optional-default]{...}, this will be \\foo.
The definition of that second macro corresponds to the definition provided with the corresponding \newcommand-directive. The control sequence token corresponding to this second macro (\\foo) is delimited by an explicit opening-square-bracket-character-token of category code 12(other). The first argument of this macro is delimited by an explicit closing-square-bracket-character-token of category code 12(other).
If the \kernel@ifnextchar test has revealed that there is no optional argument, then this second macro is called with a token sequence appended behind the corresponding control sequence token, which is structured as follows: opening-square-bracket-character-token of category code 12(other), default value, explicit closing-square-bracket-character-token of category code 12(other).
If the \kernel@ifnextchar test has revealed that there probably is an optional argument, this second macro is called without appending any additional tokens.
With macros that process delimited arguments, the tokens that within the definition's parameter-text form the argument-delimiters cannot be replaced by other tokens of the same meaning.
This is because when TeX scans for argument-delimiters, TeX does "look" at tokens, not at the meanings of tokens.
The \\foo-macro causes TeX to scan for argument-delimiters [12 and ]12.
With things like
\let\amacro=[
\let\anothermacro=]
\foo\amacro optional value \anothermacro...
you would require TeX not to "look" at tokens while scanning for argument-delimiters but to "look" at meanings of tokens.
In some situations you can do some \uppercase- or \lowercase-trickery—\uppercase and \lowercase leave the category-codes of explicit character-tokens unchanged while changing the character-codes, thus you can do something like this:
\documentclass[landscape, a4paper]{article}
%%%%%%% Layout %%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname @ifundefined\endcsname{pdfpagewidth}{}{\pdfpagewidth=\paperwidth}
\csname @ifundefined\endcsname{pdfpageheight}{}{\pdfpageheight=\paperheight}
\csname @ifundefined\endcsname{pagewidth}{}{\pagewidth=\paperwidth}
\csname @ifundefined\endcsname{pageheight}{}{\pageheight=\paperheight}
\textwidth=\paperwidth
\oddsidemargin=1.5cm
\marginparsep=.2\oddsidemargin
\advance\textwidth -2\oddsidemargin
\marginparwidth=\oddsidemargin
\advance\oddsidemargin-1in
\evensidemargin=\oddsidemargin
\advance\marginparwidth-2\marginparsep
\textheight=\paperheight
\topmargin=1.5cm
\advance\textheight-2\topmargin
\footskip=.5\topmargin
\advance\topmargin-1in
\headheight=0pt
\headsep=0pt
{\normalfont
\csname @tempdima\endcsname=.5\ht\strutbox
\expandafter}\expandafter\advance\expandafter\footskip\the\csname @tempdima\endcsname
{\normalfont\expandafter}\expandafter\topskip\expandafter=\the\ht\strutbox
\pagestyle{plain}%
\parindent=0ex
\parskip=\baselineskip
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand\macrowithoptionalarg[1][default]{The things inside the parentheses are taken for the argument: (#1)}
\begin{document}
Test 1: \macrowithoptionalarg
Test 2: \macrowithoptionalarg[{non-default}]%
\begingroup
\catcode`[ = \active
\catcode`] = \active
\def[{blah}
\def]{pfff}
%...
\begingroup
% catcode of ( is 12 and catcode of ) is 12.
\lccode`\(=`\[
\lccode`\)=`\]
% Now applying \lowercase to ( yields [ of catcode 12 and applying \lowercase to ) yields ]
% of catcode 12, but be aware that AND gets lowercasd also:
Test 3: \lowercase{\endgroup\macrowithoptionalarg({[ AND ]})}%
%...
\endgroup
\end{document}

In case \edef and ε-TeX's \unexpanded are allowed, you can apply \string for transforming active-[ and active-] into their category-code-12-pendants:
\documentclass[landscape, a4paper]{article}
%%%%%%% Layout %%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname @ifundefined\endcsname{pdfpagewidth}{}{\pdfpagewidth=\paperwidth}
\csname @ifundefined\endcsname{pdfpageheight}{}{\pdfpageheight=\paperheight}
\csname @ifundefined\endcsname{pagewidth}{}{\pagewidth=\paperwidth}
\csname @ifundefined\endcsname{pageheight}{}{\pageheight=\paperheight}
\textwidth=\paperwidth
\oddsidemargin=1.5cm
\marginparsep=.2\oddsidemargin
\advance\textwidth -2\oddsidemargin
\marginparwidth=\oddsidemargin
\advance\oddsidemargin-1in
\evensidemargin=\oddsidemargin
\advance\marginparwidth-2\marginparsep
\textheight=\paperheight
\topmargin=1.5cm
\advance\textheight-2\topmargin
\footskip=.5\topmargin
\advance\topmargin-1in
\headheight=0pt
\headsep=0pt
{\normalfont
\csname @tempdima\endcsname=.5\ht\strutbox
\expandafter}\expandafter\advance\expandafter\footskip\the\csname @tempdima\endcsname
{\normalfont\expandafter}\expandafter\topskip\expandafter=\the\ht\strutbox
\pagestyle{plain}%
\parindent=0ex
\parskip=\baselineskip
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand\macrowithoptionalarg[1][default]{The things inside the parentheses are taken for the argument: (#1)}
\begin{document}
Test 1: \macrowithoptionalarg
Test 2: \macrowithoptionalarg[{non-default}]%
\begingroup
\catcode`[ = \active
\catcode`] = \active
\def[{blah}
\def]{pfff}
%...
\edef\scratchmacro{\unexpanded{\macrowithoptionalarg}\string[\unexpanded{[ and ]}\string]}%
Test 3: \scratchmacro
%...
\endgroup
\end{document}

\includegraphicsto look for an optional argument delimited by active [] but you are pulling at a very tangled ball of string, each definition will break others and require further definitions, so it's not impossible, but perhaps rather adventurous. – David Carlisle May 31 '20 at 15:26\catcode`[=\active\catcode`]=\activein a strategic place, then see how many things break. – egreg May 31 '20 at 15:28\includegraphicssomething like{\catcode\[=12 \catcode`]=12 \includegraphics[...]{...}}` – David Carlisle May 31 '20 at 15:32\or{would definitely break everything. – David Carlisle May 31 '20 at 15:35