MapInfo tab can contain several layers but obviously in this case there is just one layer that holds several kind of geometries. Like this one that I made for testing:
ogrinfo mixed.tab mixed
INFO: Open of `mixed.tab'
using driver `MapInfo File' successful.
Layer name: mixed
Geometry: Unknown (any)
Feature Count: 3
OGRFeature(mixed):1
FID (Integer) = 1
POINT (260000.01 7240000.01)
OGRFeature(mixed):2
FID (Integer) = 2
LINESTRING (159999.99 7039999.99,300000 7140000,189999.99 7210000.01)
OGRFeature(mixed):3
FID (Integer) = 3
POLYGON ((-30000.0 7240000.01,39999.99 7159999.99,99999.99 7279999.99,-30000.0 7240000.01))
I suggest to use ogr2ogr with the -sql parameter. As documented in http://www.gdal.org/ogr_sql.html you can select features by the geometry type.
ogr2ogr -f "ESRI Shapefile" points.shp mixed.tab -sql "SELECT* FROM mixed where ogr_geometry='POINT' OR ogr_geometry='MULTIPOINT'"
ogr2ogr -f "ESRI Shapefile" lines.shp mixed.tab -sql "SELECT* FROM mixed where ogr_geometry='LINESTRING' OR ogr_geometry='MULTILINESTRING'"
ogr2ogr -f "ESRI Shapefile" polygons.shp mixed.tab -sql "SELECT* FROM mixed where ogr_geometry='POLYGON' OR ogr_geometry='MULTIPOLYGON'"