Hey Shaun,
The kinematics base plugin is intended to be a base class that lets us switch between solvers easily. We use pluginlib to expose that capability so it is ROS dependent. Although the base class is all that is required for an IK solution, it provides no functionality for actual setup/configuration. ROS is used for that because its convenient. The robot_description parameter in the initialization function is used by all solvers to determine which robot we are talking about. You could do this initialization some other way (e.g. pass in a file location in that parameter and then parse the Collada/URDF file yourself).
And yes, the KDL IK API is not too complex to use alone but using the plugin architecture lets us integrate custom ik solvers and things like ikfast.
Sachin