I think squared image is more a choice for simplicity.
There are two types of Convolutionnal Neural Network, ones with fully connected network at the end (usually called CNN) and ones with only convolutionnal layers (which are called FCN for Fully Convolutionnal Network)
With real CNN, you always have to take the same images shape, because you flatten the last convolutionnal layer, with a fixed size. As the flatten layer has a fixed size, the feature map shape from the layer before has to be the same shape, and so, inputs (images) has to.
In FCN however, you don't flatten the last convolutionnal layer, so you don't need a fixed feature map shape, and so, don't need an input fixed size.
In both cases, you don't need squared image. You just have to be careful in the case you use CNN with full connected layer, to have the right shape for the flatten layer.
For instance, if you have an input size 320x160, and you have 3 pooling layers, so your output in the last convolutionnal layer is 40x20xc (with c the number of filters/channels) then you just need the flatten layer to have 40*20*c neurons.
If you create a new network, just design it to handle rectangle image.
If you want to use an already created, and pretrained one, I think the better choice is to resize the image.
I am not sure, but if information are important and you delete them by cropping, maybe your prediction can be wrong (it depends if the object of interest is in the parts of the image that is cropped)...
Actually, in Yolo (an object recognition network), images are resized if they don't fit the inputs requirement. See figure 1 of the YOLO paper
It's because you don't need a high resolution to detect an object (for example the CIFAR dataset have image of 32x32, but the network can still predict correct label).
So I think resize your image don't affect the prediction much (unless the new size is very different from the original)