I have not seen a better mapping tool than CartoDB. You get the familiarity of Google Maps with arbitrarily complex geographic data visualization on top. CartoDB excels at large data sets where Google Maps API completely chokes when attempting to handle more than ~1000 data points. I was able to plot 500,000 points on a map with reasonable speed and able to perform complex aggregations to display boundaries of areas containing certain types of data, intersections of those sections, and more.
Learning curve - CartoDB might be difficult to use if you don't have a bit of SQL or data structures background. If you're not familiar with floats, strings, etc., you might upload an Excel file and be confused about how to manipulate it to get the software to create the maps that you want.
Performance - When I used it, there were some occasional issues with loading and parsing large data files.
Python is definitely a more powerful tool for data munging and analysis, but the python packages for geo-related data viz (bokeh, matplotlib, seaborn) are cumbersome to use. I would recommend doing your data analysis in Python and then exporting the final data to CartoDB for visualization. One benefit of doing this is that CartoDB can automatically publish your viz to a link or object, so you don't have to export it and host it yourself. Another benefit is that CartoDB automatically updates the viz once you change the data, eliminating the need to continuously regenerate image files. I haven't used Tableau too extensively, but from the experience I've had with it -- Tableau is better suited for traditional analytical visualization (charts, graphs, etc.) than for geospatial mapping and visualization.