wstool
has assumptions about workspaces (hence the name). It also requires one to operate on (or initialise one). From the usage doc string:
wstool is a command to manipulate ROS workspaces. wstool replaces its predecessor rosws.
Successor to wstool
is vcstool, which completely decouples “downloading repositories” from workspace management. Part of the rationale would seem to be exactly the points you raise.
vcstool
uses .repos
files (to avoid the confusion with ROS) and only supports .rosinstall
files for convenience / historical reasons.