Well head.jsp is not itself mandatory, however it does do some mandatory things which whether you rely on the inherited head.jsp, or you create your own head.jsp need to happen. You can see what it does by looking at /libs/foundation/components/page/head.jsp in CRXDE Lite.
- The reason sidekick isn't showing up is that head.jsp includes /libs/wcm/core/components/init/init.jsp. init.jsp includes authoring related CSS and JavaScript and launches the sidekick.
- head.jsp also prints out the html head element of your page - without a head element your page isn't a valid HTML page.
- It also includes headlibs.jsp which is responsible for including your page's CSS and JS.
In most real world scenarios you override both head.jsp and headlibs.jsp in order to match your project's requirements.