Using a specific author interface rather than exposing the internals to the author has the
benefits of flexibility for future changes. For example, I as an author, I might have used
your macro \setPKGlength{7pt} in five papers.
If this command was used by the package internally and you as the maintainer of the package might have decided to change you macro to \setlengthPKG{7pt} for readability reasons, I will not be able to still process my previous papers.
Exposing an interface rather than internal commands is a common paradigm in many computer languages programming. In the case of TeX/LaTeX it also brings consistency in the equation (internal commands should have an @), external should not have them.
Edit
My own preference is to expose PGF keys style interface for cases where a multitude
of parameters are required (see longer example), such as:
\cxset{try textheight/.code=\global\setlength\trytextheight@cx{#1},
try textheight/.default=\textheight,
try headheight/.code=\global\setlength\tryheadheight@cx{#1},
try headheight/.default=\headheight,
try headsep/.code=\global\setlength\tryheadsep@cx{#1},
....
try topmargin/.code=\global\setlength\trytopmargin@cx{#1},
try topmargin/.default=\topmargin,...
}
For simpler cases, setting quick setters and getters is my preferred coding style:
\documentclass{article}
\usepackage{lipsum}
\makeatletter
% Properties.
\def\ece#1#2{\expandafter#1\csname#2\endcsname}%
% \setproperty@cx{atom}{propertyname}{value} defines the property
% propertyname on the ``atom'' atom to have value.
\def\setproperty@cx#1#2#3{\ece\protected@edef{#1@p#2}{#3}}%
% \getproperty@cx{atom}{propertyname} expands to the value of the property
% propertyname on atom.
\def\getproperty@cx#1#2{%
\expandafter\ifx\csname#1@p#2\endcsname\relax
\else \csname#1@p#2\endcsname
\fi
}
\long\def\setminipage@cx#1#2{%
\setproperty@cx{boxwidth}{width}{\dimexpr#1\relax}%
\fbox{%
\minipage{\getproperty@cx{boxwidth}{width}}
\raggedright #2
\endminipage
}%
}
\def\setparindent@cx#1{%
\setproperty@cx{parindent}{value}{\dimexpr#1\relax}%
\parindent\getproperty@cx{parindent}{value}%
%begins a paragraph if necessary
\leavevmode
}
% Author command API
\let\SetParagraphIndentation\setparindent@cx
\let\SmallBox\setminipage@cx
\makeatother
\begin{document}
\SmallBox{25pt+35pt}{lorem ipsum dorem. Lorem\par lorem.}
\lipsum[5]
\SetParagraphIndentation{.5in + 2cm + 10pt}
\lipsum[5]
\end{document}