The grand jury is a constitutional requirement, at least in some federal proceedings, so it is not as though we can toss it out even if we think it's pointless. It is not created to assess guilt or innocence at all, but is meant to assess whether there is sufficient evidence to show a crime has been committed and whether the person under scrutiny should be indicted for the crime. Before an indictment, there is no requirement for a prosecutor to tip his or her hand, certainly, so there is nothing wrong with the proceedings being kept secret. It sometimes happens that there is not sufficient evidence to return an indictment, and the prosecutor is then free to continue to gather additional evidence. There are instances in which the grand jury refuses to indict, and this is particularly important because prosecutors are political creatures, which means they are perfectly capable of wanting to try a big case right before an election or act in some other way that is politically expedient, but which does not provide for a fair indictment. The grand jury is meant to keep the prosecutor honest.
I think the main reason that no one is allowed in the grand jury proceedings other than the prosecutor is that they don't want anyone to have undue influence on the proceedings. As the joke goes, the grand jury is just a rubber stamp and will indict anyone who the prosecutor tells them to, but the grand jury is actually important.
I would think that this is because it is only a preliminary hearing. If we had a full trial at this point, it would take too much time and effort. It makes more sense to have a bare bones hearing just to see if there's any reason to indict. The full trial can come later.