As a workaround, I first created a python list with strings pointing to individual raster bands ("raster1.tif/Band_1", "raster1.tif/Band_2", "raster1.tif/Band_3",etc). Then I used it in this small script:
for raster in input_files:
ExtractMultiValuesToPoints(in_shp, raster, "BILINEAR")
in_shp = "temp/shapefiles/points.shp"
The shapefile contains around 50 points, and each raster is around 15MB.
If the list of rasters is small (more or less <20), everything works as expected. However, I have around 50 raster images. Using the complete list, Python crashes ("python.exe has stopped working") after processing 21 images or so.
The values of the first 20 rasters are correctly appended to the shapefile (one column for each raster).
I monitored python.exe in the Windows 7 Resource Monitor. Memory usage of Python starts around 15 MB and then gradually increases to around 700 MB (and then Python crashes). So, memory leakage might be the reason for the crashes (although the PC has 8 GB of RAM).